@oxy.so/bloom 4.17.0 → 4.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/docs/adoption-matrix.mdx +7 -7
  2. package/docs/breadcrumb.mdx +11 -0
  3. package/docs/cart-panel.mdx +4 -2
  4. package/docs/checkout-summary.mdx +4 -0
  5. package/docs/chip.mdx +14 -1
  6. package/docs/dialog.mdx +5 -4
  7. package/docs/loading.mdx +11 -0
  8. package/docs/overlay.mdx +21 -0
  9. package/docs/price-breakdown.mdx +17 -0
  10. package/docs/rating.mdx +22 -0
  11. package/docs/select.mdx +10 -0
  12. package/docs/stepper.mdx +25 -0
  13. package/lib/commonjs/breadcrumb/Breadcrumb.js +36 -6
  14. package/lib/commonjs/breadcrumb/Breadcrumb.js.map +1 -1
  15. package/lib/commonjs/cart-panel/CartLine.js +32 -10
  16. package/lib/commonjs/cart-panel/CartLine.js.map +1 -1
  17. package/lib/commonjs/cart-panel/CartPanel.js +3 -0
  18. package/lib/commonjs/cart-panel/CartPanel.js.map +1 -1
  19. package/lib/commonjs/cart-panel/shared.js +2 -0
  20. package/lib/commonjs/cart-panel/shared.js.map +1 -1
  21. package/lib/commonjs/chat-list/parts.js +1 -1
  22. package/lib/commonjs/chat-list/parts.js.map +1 -1
  23. package/lib/commonjs/chat-screen/ChatBackground.js +6 -6
  24. package/lib/commonjs/chat-screen/ChatBackground.js.map +1 -1
  25. package/lib/commonjs/checkout-summary/CheckoutConfirm.js +11 -1
  26. package/lib/commonjs/checkout-summary/CheckoutConfirm.js.map +1 -1
  27. package/lib/commonjs/chip/Chip.js +3 -1
  28. package/lib/commonjs/chip/Chip.js.map +1 -1
  29. package/lib/commonjs/dialog/Dialog.js +20 -6
  30. package/lib/commonjs/dialog/Dialog.js.map +1 -1
  31. package/lib/commonjs/dialog/Dialog.web.js +11 -5
  32. package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
  33. package/lib/commonjs/dialog/placement.js +18 -1
  34. package/lib/commonjs/dialog/placement.js.map +1 -1
  35. package/lib/commonjs/loading/Loading.js +7 -3
  36. package/lib/commonjs/loading/Loading.js.map +1 -1
  37. package/lib/commonjs/loading/Loading.web.js +7 -3
  38. package/lib/commonjs/loading/Loading.web.js.map +1 -1
  39. package/lib/commonjs/loading/LoadingBase.js +49 -2
  40. package/lib/commonjs/loading/LoadingBase.js.map +1 -1
  41. package/lib/commonjs/location-puck/LocationPuck.js +1 -1
  42. package/lib/commonjs/location-puck/LocationPuck.js.map +1 -1
  43. package/lib/commonjs/mail-list/parts.js +1 -1
  44. package/lib/commonjs/mail-list/parts.js.map +1 -1
  45. package/lib/commonjs/media-card/parts.js +1 -1
  46. package/lib/commonjs/media-card/parts.js.map +1 -1
  47. package/lib/commonjs/overlay/Overlay.js +19 -4
  48. package/lib/commonjs/overlay/Overlay.js.map +1 -1
  49. package/lib/commonjs/overlay/use-hardware-back.js +32 -0
  50. package/lib/commonjs/overlay/use-hardware-back.js.map +1 -0
  51. package/lib/commonjs/price-breakdown/PriceSummary.js +11 -1
  52. package/lib/commonjs/price-breakdown/PriceSummary.js.map +1 -1
  53. package/lib/commonjs/price-breakdown/PriceSummaryLine.js +13 -1
  54. package/lib/commonjs/price-breakdown/PriceSummaryLine.js.map +1 -1
  55. package/lib/commonjs/rating/Rating.js +90 -4
  56. package/lib/commonjs/rating/Rating.js.map +1 -1
  57. package/lib/commonjs/search/Search.js +36 -3
  58. package/lib/commonjs/search/Search.js.map +1 -1
  59. package/lib/commonjs/settings-modal/SettingsModal.js +19 -12
  60. package/lib/commonjs/settings-modal/SettingsModal.js.map +1 -1
  61. package/lib/commonjs/stepper/Stepper.js +18 -5
  62. package/lib/commonjs/stepper/Stepper.js.map +1 -1
  63. package/lib/commonjs/teleport/PortalHost.js +1 -1
  64. package/lib/commonjs/zoomable-media-gallery/ZoomableMediaGallery.js +32 -12
  65. package/lib/commonjs/zoomable-media-gallery/ZoomableMediaGallery.js.map +1 -1
  66. package/lib/module/breadcrumb/Breadcrumb.js +36 -6
  67. package/lib/module/breadcrumb/Breadcrumb.js.map +1 -1
  68. package/lib/module/cart-panel/CartLine.js +32 -10
  69. package/lib/module/cart-panel/CartLine.js.map +1 -1
  70. package/lib/module/cart-panel/CartPanel.js +3 -0
  71. package/lib/module/cart-panel/CartPanel.js.map +1 -1
  72. package/lib/module/cart-panel/shared.js +2 -0
  73. package/lib/module/cart-panel/shared.js.map +1 -1
  74. package/lib/module/chat-list/parts.js +1 -1
  75. package/lib/module/chat-list/parts.js.map +1 -1
  76. package/lib/module/chat-screen/ChatBackground.js +6 -6
  77. package/lib/module/chat-screen/ChatBackground.js.map +1 -1
  78. package/lib/module/checkout-summary/CheckoutConfirm.js +11 -1
  79. package/lib/module/checkout-summary/CheckoutConfirm.js.map +1 -1
  80. package/lib/module/chip/Chip.js +3 -1
  81. package/lib/module/chip/Chip.js.map +1 -1
  82. package/lib/module/dialog/Dialog.js +21 -7
  83. package/lib/module/dialog/Dialog.js.map +1 -1
  84. package/lib/module/dialog/Dialog.web.js +12 -6
  85. package/lib/module/dialog/Dialog.web.js.map +1 -1
  86. package/lib/module/dialog/placement.js +17 -1
  87. package/lib/module/dialog/placement.js.map +1 -1
  88. package/lib/module/loading/Loading.js +8 -4
  89. package/lib/module/loading/Loading.js.map +1 -1
  90. package/lib/module/loading/Loading.web.js +8 -4
  91. package/lib/module/loading/Loading.web.js.map +1 -1
  92. package/lib/module/loading/LoadingBase.js +49 -3
  93. package/lib/module/loading/LoadingBase.js.map +1 -1
  94. package/lib/module/location-puck/LocationPuck.js +1 -1
  95. package/lib/module/location-puck/LocationPuck.js.map +1 -1
  96. package/lib/module/mail-list/parts.js +1 -1
  97. package/lib/module/mail-list/parts.js.map +1 -1
  98. package/lib/module/media-card/parts.js +1 -1
  99. package/lib/module/media-card/parts.js.map +1 -1
  100. package/lib/module/overlay/Overlay.js +19 -4
  101. package/lib/module/overlay/Overlay.js.map +1 -1
  102. package/lib/module/overlay/use-hardware-back.js +29 -0
  103. package/lib/module/overlay/use-hardware-back.js.map +1 -0
  104. package/lib/module/price-breakdown/PriceSummary.js +11 -1
  105. package/lib/module/price-breakdown/PriceSummary.js.map +1 -1
  106. package/lib/module/price-breakdown/PriceSummaryLine.js +13 -1
  107. package/lib/module/price-breakdown/PriceSummaryLine.js.map +1 -1
  108. package/lib/module/rating/Rating.js +89 -4
  109. package/lib/module/rating/Rating.js.map +1 -1
  110. package/lib/module/search/Search.js +37 -4
  111. package/lib/module/search/Search.js.map +1 -1
  112. package/lib/module/settings-modal/SettingsModal.js +20 -13
  113. package/lib/module/settings-modal/SettingsModal.js.map +1 -1
  114. package/lib/module/stepper/Stepper.js +18 -5
  115. package/lib/module/stepper/Stepper.js.map +1 -1
  116. package/lib/module/teleport/PortalHost.js +1 -1
  117. package/lib/module/zoomable-media-gallery/ZoomableMediaGallery.js +32 -12
  118. package/lib/module/zoomable-media-gallery/ZoomableMediaGallery.js.map +1 -1
  119. package/lib/typescript/commonjs/breadcrumb/Breadcrumb.d.ts.map +1 -1
  120. package/lib/typescript/commonjs/breadcrumb/types.d.ts +7 -0
  121. package/lib/typescript/commonjs/breadcrumb/types.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/cart-panel/CartLine.d.ts +10 -5
  123. package/lib/typescript/commonjs/cart-panel/CartLine.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/cart-panel/CartPanel.d.ts +1 -1
  125. package/lib/typescript/commonjs/cart-panel/CartPanel.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/cart-panel/shared.d.ts +1 -1
  127. package/lib/typescript/commonjs/cart-panel/shared.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/cart-panel/types.d.ts +18 -0
  129. package/lib/typescript/commonjs/cart-panel/types.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/checkout-summary/CheckoutConfirm.d.ts +4 -1
  131. package/lib/typescript/commonjs/checkout-summary/CheckoutConfirm.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/checkout-summary/types.d.ts +6 -0
  133. package/lib/typescript/commonjs/checkout-summary/types.d.ts.map +1 -1
  134. package/lib/typescript/commonjs/chip/Chip.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/chip/types.d.ts +8 -6
  136. package/lib/typescript/commonjs/chip/types.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/dialog/Dialog.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/dialog/placement.d.ts +13 -2
  140. package/lib/typescript/commonjs/dialog/placement.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/dialog/types.d.ts +3 -2
  142. package/lib/typescript/commonjs/dialog/types.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/loading/Loading.d.ts.map +1 -1
  144. package/lib/typescript/commonjs/loading/Loading.web.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/loading/LoadingBase.d.ts +18 -0
  146. package/lib/typescript/commonjs/loading/LoadingBase.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/loading/types.d.ts +11 -0
  148. package/lib/typescript/commonjs/loading/types.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/overlay/Overlay.d.ts +1 -1
  150. package/lib/typescript/commonjs/overlay/Overlay.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/overlay/types.d.ts +18 -0
  152. package/lib/typescript/commonjs/overlay/types.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/overlay/use-hardware-back.d.ts +11 -0
  154. package/lib/typescript/commonjs/overlay/use-hardware-back.d.ts.map +1 -0
  155. package/lib/typescript/commonjs/price-breakdown/PriceSummary.d.ts.map +1 -1
  156. package/lib/typescript/commonjs/price-breakdown/PriceSummaryLine.d.ts +3 -1
  157. package/lib/typescript/commonjs/price-breakdown/PriceSummaryLine.d.ts.map +1 -1
  158. package/lib/typescript/commonjs/price-breakdown/types.d.ts +12 -0
  159. package/lib/typescript/commonjs/price-breakdown/types.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/rating/Rating.d.ts +3 -1
  161. package/lib/typescript/commonjs/rating/Rating.d.ts.map +1 -1
  162. package/lib/typescript/commonjs/rating/index.d.ts +1 -1
  163. package/lib/typescript/commonjs/rating/index.d.ts.map +1 -1
  164. package/lib/typescript/commonjs/rating/types.d.ts +20 -0
  165. package/lib/typescript/commonjs/rating/types.d.ts.map +1 -1
  166. package/lib/typescript/commonjs/search/Search.d.ts.map +1 -1
  167. package/lib/typescript/commonjs/select/types.d.ts +7 -0
  168. package/lib/typescript/commonjs/select/types.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/settings-modal/SettingsModal.d.ts.map +1 -1
  170. package/lib/typescript/commonjs/stepper/Stepper.d.ts +1 -1
  171. package/lib/typescript/commonjs/stepper/Stepper.d.ts.map +1 -1
  172. package/lib/typescript/commonjs/stepper/types.d.ts +9 -0
  173. package/lib/typescript/commonjs/stepper/types.d.ts.map +1 -1
  174. package/lib/typescript/commonjs/teleport/PortalHost.d.ts +1 -1
  175. package/lib/typescript/commonjs/zoomable-media-gallery/ZoomableMediaGallery.d.ts.map +1 -1
  176. package/lib/typescript/module/breadcrumb/Breadcrumb.d.ts.map +1 -1
  177. package/lib/typescript/module/breadcrumb/types.d.ts +7 -0
  178. package/lib/typescript/module/breadcrumb/types.d.ts.map +1 -1
  179. package/lib/typescript/module/cart-panel/CartLine.d.ts +10 -5
  180. package/lib/typescript/module/cart-panel/CartLine.d.ts.map +1 -1
  181. package/lib/typescript/module/cart-panel/CartPanel.d.ts +1 -1
  182. package/lib/typescript/module/cart-panel/CartPanel.d.ts.map +1 -1
  183. package/lib/typescript/module/cart-panel/shared.d.ts +1 -1
  184. package/lib/typescript/module/cart-panel/shared.d.ts.map +1 -1
  185. package/lib/typescript/module/cart-panel/types.d.ts +18 -0
  186. package/lib/typescript/module/cart-panel/types.d.ts.map +1 -1
  187. package/lib/typescript/module/checkout-summary/CheckoutConfirm.d.ts +4 -1
  188. package/lib/typescript/module/checkout-summary/CheckoutConfirm.d.ts.map +1 -1
  189. package/lib/typescript/module/checkout-summary/types.d.ts +6 -0
  190. package/lib/typescript/module/checkout-summary/types.d.ts.map +1 -1
  191. package/lib/typescript/module/chip/Chip.d.ts.map +1 -1
  192. package/lib/typescript/module/chip/types.d.ts +8 -6
  193. package/lib/typescript/module/chip/types.d.ts.map +1 -1
  194. package/lib/typescript/module/dialog/Dialog.d.ts.map +1 -1
  195. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  196. package/lib/typescript/module/dialog/placement.d.ts +13 -2
  197. package/lib/typescript/module/dialog/placement.d.ts.map +1 -1
  198. package/lib/typescript/module/dialog/types.d.ts +3 -2
  199. package/lib/typescript/module/dialog/types.d.ts.map +1 -1
  200. package/lib/typescript/module/loading/Loading.d.ts.map +1 -1
  201. package/lib/typescript/module/loading/Loading.web.d.ts.map +1 -1
  202. package/lib/typescript/module/loading/LoadingBase.d.ts +18 -0
  203. package/lib/typescript/module/loading/LoadingBase.d.ts.map +1 -1
  204. package/lib/typescript/module/loading/types.d.ts +11 -0
  205. package/lib/typescript/module/loading/types.d.ts.map +1 -1
  206. package/lib/typescript/module/overlay/Overlay.d.ts +1 -1
  207. package/lib/typescript/module/overlay/Overlay.d.ts.map +1 -1
  208. package/lib/typescript/module/overlay/types.d.ts +18 -0
  209. package/lib/typescript/module/overlay/types.d.ts.map +1 -1
  210. package/lib/typescript/module/overlay/use-hardware-back.d.ts +11 -0
  211. package/lib/typescript/module/overlay/use-hardware-back.d.ts.map +1 -0
  212. package/lib/typescript/module/price-breakdown/PriceSummary.d.ts.map +1 -1
  213. package/lib/typescript/module/price-breakdown/PriceSummaryLine.d.ts +3 -1
  214. package/lib/typescript/module/price-breakdown/PriceSummaryLine.d.ts.map +1 -1
  215. package/lib/typescript/module/price-breakdown/types.d.ts +12 -0
  216. package/lib/typescript/module/price-breakdown/types.d.ts.map +1 -1
  217. package/lib/typescript/module/rating/Rating.d.ts +3 -1
  218. package/lib/typescript/module/rating/Rating.d.ts.map +1 -1
  219. package/lib/typescript/module/rating/index.d.ts +1 -1
  220. package/lib/typescript/module/rating/index.d.ts.map +1 -1
  221. package/lib/typescript/module/rating/types.d.ts +20 -0
  222. package/lib/typescript/module/rating/types.d.ts.map +1 -1
  223. package/lib/typescript/module/search/Search.d.ts.map +1 -1
  224. package/lib/typescript/module/select/types.d.ts +7 -0
  225. package/lib/typescript/module/select/types.d.ts.map +1 -1
  226. package/lib/typescript/module/settings-modal/SettingsModal.d.ts.map +1 -1
  227. package/lib/typescript/module/stepper/Stepper.d.ts +1 -1
  228. package/lib/typescript/module/stepper/Stepper.d.ts.map +1 -1
  229. package/lib/typescript/module/stepper/types.d.ts +9 -0
  230. package/lib/typescript/module/stepper/types.d.ts.map +1 -1
  231. package/lib/typescript/module/teleport/PortalHost.d.ts +1 -1
  232. package/lib/typescript/module/zoomable-media-gallery/ZoomableMediaGallery.d.ts.map +1 -1
  233. package/package.json +1 -1
  234. package/src/breadcrumb/Breadcrumb.tsx +29 -4
  235. package/src/breadcrumb/types.ts +7 -0
  236. package/src/cart-panel/CartLine.tsx +30 -7
  237. package/src/cart-panel/CartPanel.tsx +3 -0
  238. package/src/cart-panel/shared.ts +11 -1
  239. package/src/cart-panel/types.ts +18 -0
  240. package/src/chat-list/parts.tsx +1 -1
  241. package/src/chat-screen/ChatBackground.tsx +6 -6
  242. package/src/checkout-summary/CheckoutConfirm.tsx +9 -0
  243. package/src/checkout-summary/types.ts +6 -0
  244. package/src/chip/Chip.tsx +3 -1
  245. package/src/chip/types.ts +8 -6
  246. package/src/dialog/Dialog.tsx +28 -9
  247. package/src/dialog/Dialog.web.tsx +15 -7
  248. package/src/dialog/placement.ts +19 -2
  249. package/src/dialog/types.ts +3 -2
  250. package/src/loading/Loading.tsx +6 -2
  251. package/src/loading/Loading.web.tsx +6 -2
  252. package/src/loading/LoadingBase.tsx +55 -5
  253. package/src/loading/types.ts +11 -0
  254. package/src/location-puck/LocationPuck.tsx +1 -1
  255. package/src/mail-list/parts.tsx +1 -1
  256. package/src/media-card/parts.tsx +1 -1
  257. package/src/overlay/Overlay.tsx +32 -14
  258. package/src/overlay/types.ts +18 -0
  259. package/src/overlay/use-hardware-back.ts +27 -0
  260. package/src/price-breakdown/PriceSummary.tsx +10 -0
  261. package/src/price-breakdown/PriceSummaryLine.tsx +12 -0
  262. package/src/price-breakdown/types.ts +12 -0
  263. package/src/rating/Rating.tsx +87 -3
  264. package/src/rating/index.ts +1 -0
  265. package/src/rating/types.ts +21 -0
  266. package/src/search/Search.tsx +42 -4
  267. package/src/select/types.ts +7 -0
  268. package/src/settings-modal/SettingsModal.tsx +20 -15
  269. package/src/stepper/Stepper.tsx +18 -5
  270. package/src/stepper/types.ts +9 -0
  271. package/src/teleport/PortalHost.tsx +1 -1
  272. package/src/zoomable-media-gallery/ZoomableMediaGallery.tsx +33 -12
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/rating/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/rating/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC"}
@@ -3,6 +3,12 @@ import type { StyleProp, ViewStyle } from 'react-native';
3
3
  export type RatingSize = 'small' | 'medium';
4
4
  /** `parenthesis` draws "(128)"; `reviews` draws "· 128 reviews". */
5
5
  export type RatingCountStyle = 'parenthesis' | 'reviews';
6
+ /**
7
+ * `compact` (default) is one star and the value; `stars` a full row of `max`
8
+ * stars (five) filled to the value — fractionally, so 4.3 fills the fifth star
9
+ * 30% — before the value.
10
+ */
11
+ export type RatingVariant = 'compact' | 'stars';
6
12
  export interface RatingProps {
7
13
  /**
8
14
  * The rating on a 5 scale. A number is drawn with up to two decimals (4.9,
@@ -20,6 +26,20 @@ export interface RatingProps {
20
26
  newLabel?: string;
21
27
  /** Default `medium`. */
22
28
  size?: RatingSize;
29
+ /** Default `compact` — one star. `stars` draws a row of five, filled fractionally. */
30
+ variant?: RatingVariant;
31
+ /**
32
+ * Paints the star(s) and the value — and the count, unless `countColor` is
33
+ * given — e.g. white over a brand-coloured hero, where text-primary and
34
+ * text-secondary are illegible. Default: text-primary (count text-secondary).
35
+ */
36
+ color?: string;
37
+ /** The filled star(s) alone, e.g. a gold star beside neutral text. Default `color`. */
38
+ starColor?: string;
39
+ /** The count alone. Default `color` when given, else text-secondary. */
40
+ countColor?: string;
41
+ /** `stars` variant: the unfilled part of each star. Default the theme's border colour. */
42
+ emptyStarColor?: string;
23
43
  /**
24
44
  * Overrides the composed accessible name ("Rated 4.92 out of 5, 128
25
45
  * reviews"), which is English — pass a translated sentence here.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/rating/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,8FAA8F;AAC9F,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,oEAAoE;AACpE,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,uGAAuG;IACvG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iFAAiF;IACjF,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,wFAAwF;IACxF,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/rating/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,8FAA8F;AAC9F,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,oEAAoE;AACpE,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,SAAS,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,uGAAuG;IACvG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,sFAAsF;IACtF,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iFAAiF;IACjF,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,wFAAwF;IACxF,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../../../src/search/Search.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,SAAS,EAAQ,MAAM,cAAc,CAAC;AAM9D,OAAO,EAA4C,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAYnG,eAAO,MAAM,MAAM;YAPT,mBAAmB,CAAC,OAAO,CAAC;IACpC;;OAEG;kBACW,MAAM,IAAI;6CAyDzB,CAAC"}
1
+ {"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../../../src/search/Search.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,SAAS,EAAQ,MAAM,cAAc,CAAC;AAQ9D,OAAO,EAA4C,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAYnG,eAAO,MAAM,MAAM;YAPT,mBAAmB,CAAC,OAAO,CAAC;IACpC;;OAEG;kBACW,MAAM,IAAI;6CA6FzB,CAAC"}
@@ -33,6 +33,13 @@ export type SelectTriggerProps = {
33
33
  /**
34
34
  * Utility classes APPENDED to the part's own — never substituted for them, so
35
35
  * a single layout class cannot strip the chrome.
36
+ *
37
+ * Never pin a HEIGHT here (`h-8`). The value's line box is 20 × the system
38
+ * font scale, and on native Yoga measures the text at most as tall as the
39
+ * space left inside the field: a fixed height cuts the glyphs in half on
40
+ * Android (OxyHQ/Mention#1126 — `h-8` is 28dp there, leaving 15.5dp for a
41
+ * 20dp line). Size a compact trigger with its padding (`fieldStyle`) so the
42
+ * text sets the height.
36
43
  */
37
44
  className?: string;
38
45
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/select/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/select/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsModal.d.ts","sourceRoot":"","sources":["../../../../src/settings-modal/SettingsModal.tsx"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,kBAAkB,EAAqC,MAAM,SAAS,CAAC;AAmFrF,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,IAAI,EAAE,cAAc,EACpB,OAAO,EACP,aAAa,EACb,MAAM,EACN,KAAK,EACL,IAAI,EAAE,cAAc,EACpB,WAAW,EACX,YAAY,EACZ,WAA0B,EAC1B,MAAM,EACN,MAAM,GACP,EAAE,kBAAkB,kDAiWpB"}
1
+ {"version":3,"file":"SettingsModal.d.ts","sourceRoot":"","sources":["../../../../src/settings-modal/SettingsModal.tsx"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,kBAAkB,EAAqC,MAAM,SAAS,CAAC;AAmFrF,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,IAAI,EAAE,cAAc,EACpB,OAAO,EACP,aAAa,EACb,MAAM,EACN,KAAK,EACL,IAAI,EAAE,cAAc,EACpB,WAAW,EACX,YAAY,EACZ,WAA0B,EAC1B,MAAM,EACN,MAAM,GACP,EAAE,kBAAkB,kDA4VpB"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { StepperProps } from './types';
3
- declare function StepperComponent({ value, onValueChange, min, max, step, disabled: disabledProp, size, formatValue, accessibilityLabel, decrementLabel, incrementLabel, style, testID, }: StepperProps): import("react/jsx-runtime").JSX.Element;
3
+ declare function StepperComponent({ value, onValueChange, min, max, step, disabled: disabledProp, size, formatValue, accessibilityLabel, decrementLabel, incrementLabel, onRemove, removeLabel, style, testID, }: StepperProps): import("react/jsx-runtime").JSX.Element;
4
4
  export declare const Stepper: React.MemoExoticComponent<typeof StepperComponent>;
5
5
  export {};
6
6
  //# sourceMappingURL=Stepper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stepper.d.ts","sourceRoot":"","sources":["../../../../src/stepper/Stepper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAc1D,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AA2DzD,iBAAS,gBAAgB,CAAC,EACxB,KAAK,EACL,aAAa,EACb,GAAO,EACP,GAAG,EACH,IAAQ,EACR,QAAQ,EAAE,YAAoB,EAC9B,IAAe,EACf,WAAW,EACX,kBAAkB,EAClB,cAA2B,EAC3B,cAA2B,EAC3B,KAAK,EACL,MAAM,GACP,EAAE,YAAY,2CA8Id;AAED,eAAO,MAAM,OAAO,oDAAyB,CAAC"}
1
+ {"version":3,"file":"Stepper.d.ts","sourceRoot":"","sources":["../../../../src/stepper/Stepper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAe1D,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AAmEzD,iBAAS,gBAAgB,CAAC,EACxB,KAAK,EACL,aAAa,EACb,GAAO,EACP,GAAG,EACH,IAAQ,EACR,QAAQ,EAAE,YAAoB,EAC9B,IAAe,EACf,WAAW,EACX,kBAAkB,EAClB,cAA2B,EAC3B,cAA2B,EAC3B,QAAQ,EACR,WAAsB,EACtB,KAAK,EACL,MAAM,GACP,EAAE,YAAY,2CAgJd;AAED,eAAO,MAAM,OAAO,oDAAyB,CAAC"}
@@ -36,6 +36,15 @@ export interface StepperProps {
36
36
  decrementLabel?: string;
37
37
  /** Name of the `+` button. Default `"Increase"`. */
38
38
  incrementLabel?: string;
39
+ /**
40
+ * Opt-in remove at the floor: at `min` the `−` button becomes a trash button
41
+ * that calls this instead of disabling (a basket line going from 1 to gone).
42
+ * Only the button removes — the keyboard and accessibility actions on the
43
+ * value still stop at `min`. Without it the stepper floors at `min`.
44
+ */
45
+ onRemove?: () => void;
46
+ /** Name of the trash button drawn at `min` with `onRemove`. Default `"Remove"`. */
47
+ removeLabel?: string;
39
48
  style?: StyleProp<ViewStyle>;
40
49
  testID?: string;
41
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/stepper/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,qGAAqG;AACrG,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,wFAAwF;IACxF,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC;;;;OAIG;IACH;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,YAAY,EAAE,oBAAoB,GAAG,OAAO,CAAC;IACzF,0FAA0F;IAC1F,KAAK,EAAE,SAAS,CAAC;IACjB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kCAAkC;IAClC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,2CAA2C;IAC3C,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACrC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/stepper/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,qGAAqG;AACrG,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,wFAAwF;IACxF,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC;;;;OAIG;IACH;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,YAAY,EAAE,oBAAoB,GAAG,OAAO,CAAC;IACzF,0FAA0F;IAC1F,KAAK,EAAE,SAAS,CAAC;IACjB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kCAAkC;IAClC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,2CAA2C;IAC3C,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACrC"}
@@ -14,7 +14,7 @@ import type { PortalHostProps } from "./types";
14
14
  * export default function App() {
15
15
  * return (
16
16
  * <PortalProvider>
17
- * <PortalHost style={StyleSheet.absoluteFillObject} name="overlay" />
17
+ * <PortalHost style={StyleSheet.absoluteFill} name="overlay" />
18
18
  * </PortalProvider>
19
19
  * );
20
20
  * }
@@ -1 +1 @@
1
- {"version":3,"file":"ZoomableMediaGallery.d.ts","sourceRoot":"","sources":["../../../../src/zoomable-media-gallery/ZoomableMediaGallery.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6E,MAAM,OAAO,CAAC;AAkElG,OAAO,KAAK,EAGV,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAkkCjB,eAAO,MAAM,oBAAoB,8GAA4B,CAAC;AAgL9D,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"ZoomableMediaGallery.d.ts","sourceRoot":"","sources":["../../../../src/zoomable-media-gallery/ZoomableMediaGallery.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6E,MAAM,OAAO,CAAC;AAmElG,OAAO,KAAK,EAGV,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AA0lCjB,eAAO,MAAM,oBAAoB,8GAA4B,CAAC;AA4K9D,eAAe,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxy.so/bloom",
3
- "version": "4.17.0",
3
+ "version": "4.18.1",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
6
6
  "main": "lib/commonjs/index.js",
@@ -13,6 +13,7 @@ import { useTheme } from '../theme/use-theme';
13
13
  import { Text } from '../typography/Typography';
14
14
  import { borderRadius } from '../styles/tokens';
15
15
  import { useInteractionState } from '../hooks/use-interaction-state';
16
+ import { useDirectionProps, useIsRtl } from '../hooks/use-is-rtl';
16
17
  import { interactiveWebCss, useInteractiveWebCss } from '../styles/interactive-web-css';
17
18
  import type { WebCssStyle } from '../styles/web-view-style';
18
19
  import { BUTTON_TRANSITION_MS } from '../button/shared';
@@ -77,10 +78,19 @@ const BREADCRUMB_CSS = interactiveWebCss({
77
78
 
78
79
  const IS_WEB = Platform.OS === 'web';
79
80
 
80
- /** `ChevronRightSmall`, path for path. */
81
- function Chevron({ color }: { color: string }) {
81
+ /**
82
+ * `ChevronRightSmall`, path for path. It points the READING direction: the
83
+ * row mirrors in a right-to-left layout (flex order follows the direction on
84
+ * both platforms), so a fixed right-pointing chevron would point back at the
85
+ * crumb it came from. A glyph is a sign, not an inset — no logical style key
86
+ * can flip it — so it reads `useIsRtl()` and mirrors itself with `scaleX`.
87
+ */
88
+ function Chevron({ color, rtl }: { color: string; rtl: boolean }) {
82
89
  return (
83
- <View aria-hidden style={{ width: 12, height: 12, flexShrink: 0 }}>
90
+ <View
91
+ aria-hidden
92
+ style={{ width: 12, height: 12, flexShrink: 0, ...(rtl ? { transform: [{ scaleX: -1 }] } : null) }}
93
+ >
84
94
  <Svg width={12} height={12} viewBox="0 0 12 12" fill="none">
85
95
  <Path
86
96
  d="M4.5 3L7.14645 5.64645C7.34171 5.84171 7.34171 6.15829 7.14645 6.35355L4.5 9"
@@ -95,16 +105,31 @@ function Chevron({ color }: { color: string }) {
95
105
 
96
106
  const BreadcrumbComponent: React.FC<BreadcrumbProps> = ({
97
107
  children,
108
+ separator,
98
109
  accessibilityLabel = 'Breadcrumb',
99
110
  style,
100
111
  testID,
101
112
  }) => {
102
113
  const theme = useTheme();
114
+ const rtl = useIsRtl();
115
+ const directionProps = useDirectionProps();
103
116
  const palette = useMemo(() => resolveBreadcrumbPalette(theme), [theme]);
104
117
  const items = Children.toArray(children).filter(isValidElement);
118
+ // A caller's separator is theirs to mirror (or not — a "/" needs nothing);
119
+ // it is hidden from assistive technology like the chevron, since the list
120
+ // structure already says where one crumb ends.
121
+ const between =
122
+ separator !== undefined ? (
123
+ <View aria-hidden style={{ flexShrink: 0, flexDirection: 'row', alignItems: 'center' }}>
124
+ {separator}
125
+ </View>
126
+ ) : (
127
+ <Chevron color={palette.tertiary} rtl={rtl} />
128
+ );
105
129
 
106
130
  return (
107
131
  <View
132
+ {...directionProps}
108
133
  role="navigation"
109
134
  accessibilityLabel={accessibilityLabel}
110
135
  testID={testID}
@@ -121,7 +146,7 @@ const BreadcrumbComponent: React.FC<BreadcrumbProps> = ({
121
146
  >
122
147
  {items.map((item, index) => (
123
148
  <Fragment key={item.key ?? index}>
124
- {index > 0 ? <Chevron color={palette.tertiary} /> : null}
149
+ {index > 0 ? between : null}
125
150
  {item}
126
151
  </Fragment>
127
152
  ))}
@@ -6,6 +6,13 @@ import type { ButtonIconComponent } from '../button/types';
6
6
  export interface BreadcrumbProps {
7
7
  /** `BreadcrumbItem` children. Chevron separators are inserted between them. */
8
8
  children: ReactNode;
9
+ /**
10
+ * Replaces the chevron between items — e.g. `"/"` as a `Text`, or an icon.
11
+ * Hidden from assistive technology. The default chevron points the reading
12
+ * direction (it mirrors in a right-to-left layout); a custom separator is
13
+ * rendered as given.
14
+ */
15
+ separator?: ReactNode;
9
16
  /** Names the navigation landmark. Default `"Breadcrumb"`. */
10
17
  accessibilityLabel?: string;
11
18
  style?: StyleProp<ViewStyle>;
@@ -21,12 +21,17 @@ import type { CartLineProps } from './types';
21
21
  * leading the square photo (56; 44 compact), washed while it is sold out
22
22
  * body the name; the chosen options on one quiet line; the note; then
23
23
  * the quantity control and remove, side by side
24
- * trailing the price, right-aligned, with an optional struck original
24
+ * trailing the price, right-aligned, with an optional struck original, and
25
+ * an optional `secondaryPrice` (a second currency) under it in the
26
+ * secondary colour
25
27
  *
26
- * THE STEPPER DOES NOT REMOVE. Its floor is 1, and removing is its own control
27
- * with its own name — a stepper that deletes the line when you press `−` once
28
- * too often is a destructive action behind an arithmetic one, and it has no
29
- * label saying so.
28
+ * BY DEFAULT THE STEPPER DOES NOT REMOVE. Its floor is 1, and removing is its
29
+ * own control with its own name — a stepper that deletes the line when you
30
+ * press `−` once too often is a destructive action behind an arithmetic one.
31
+ * `removeInStepper` opts into the storefront pattern instead: at 1 the `−`
32
+ * becomes a trash button NAMED as removal (`Stepper`'s `onRemove`), and the
33
+ * separate remove control is not drawn. A sold-out line keeps the separate
34
+ * control, because its stepper is disabled and could not remove anything.
30
35
  *
31
36
  * The row is never pressable, which is what lets the controls live in it: a
32
37
  * pressable `Item` is a real `<button>` on web and a control inside one is
@@ -48,6 +53,7 @@ function CartLineComponent(props: CartLineProps) {
48
53
  note,
49
54
  price,
50
55
  originalPrice,
56
+ secondaryPrice,
51
57
  quantity,
52
58
  photo,
53
59
  photoVariant,
@@ -56,6 +62,7 @@ function CartLineComponent(props: CartLineProps) {
56
62
  onQuantityChange,
57
63
  onRemove,
58
64
  removeLabel,
65
+ removeInStepper = false,
59
66
  density = 'comfortable',
60
67
  accessibilityLabel,
61
68
  style,
@@ -68,6 +75,10 @@ function CartLineComponent(props: CartLineProps) {
68
75
  const g = CART_GEOMETRY[density];
69
76
  const compact = density === 'compact';
70
77
  const chosen = optionsLine(options);
78
+ const removeName = removeLabel ?? `Remove ${name}`;
79
+ // The stepper carries removal only when it is live; a disabled stepper
80
+ // (sold out) cannot, and the line still needs its remove control.
81
+ const stepperRemoves = removeInStepper && onRemove !== undefined && onQuantityChange !== undefined && !unavailable;
71
82
 
72
83
  return (
73
84
  <Item
@@ -95,6 +106,16 @@ function CartLineComponent(props: CartLineProps) {
95
106
  secondaryColor={paint.textSecondary}
96
107
  testID={testID ? `${testID}-price` : undefined}
97
108
  />
109
+ {secondaryPrice ? (
110
+ <Text
111
+ variant={compact ? 'caption-1-regular' : 'body-2-regular'}
112
+ numberOfLines={1}
113
+ testID={testID ? `${testID}-secondary-price` : undefined}
114
+ style={{ color: paint.textSecondary, fontVariant: ['tabular-nums'] }}
115
+ >
116
+ {secondaryPrice}
117
+ </Text>
118
+ ) : null}
98
119
  </View>
99
120
  }
100
121
  style={style}
@@ -146,6 +167,8 @@ function CartLineComponent(props: CartLineProps) {
146
167
  min={1}
147
168
  disabled={unavailable}
148
169
  onValueChange={onQuantityChange}
170
+ onRemove={stepperRemoves ? onRemove : undefined}
171
+ removeLabel={stepperRemoves ? removeName : undefined}
149
172
  accessibilityLabel={name}
150
173
  testID={testID ? `${testID}-stepper` : undefined}
151
174
  />
@@ -158,11 +181,11 @@ function CartLineComponent(props: CartLineProps) {
158
181
  {`×${quantity}`}
159
182
  </Text>
160
183
  )}
161
- {onRemove ? (
184
+ {onRemove && !stepperRemoves ? (
162
185
  <GlyphButton
163
186
  size={32}
164
187
  icon={RiDeleteBinLine}
165
- accessibilityLabel={removeLabel ?? `Remove ${name}`}
188
+ accessibilityLabel={removeName}
166
189
  onPress={onRemove}
167
190
  testID={testID ? `${testID}-remove` : undefined}
168
191
  />
@@ -187,6 +187,7 @@ function CartPanelComponent({
187
187
  lines,
188
188
  onLineQuantityChange,
189
189
  onLineRemove,
190
+ removeInStepper = false,
190
191
  minimumOrder,
191
192
  tip,
192
193
  promo,
@@ -239,6 +240,7 @@ function CartPanelComponent({
239
240
  note={line.note}
240
241
  price={line.price}
241
242
  originalPrice={line.originalPrice}
243
+ secondaryPrice={line.secondaryPrice}
242
244
  quantity={line.quantity}
243
245
  photo={line.photo}
244
246
  photoVariant={line.photoVariant}
@@ -251,6 +253,7 @@ function CartPanelComponent({
251
253
  : undefined
252
254
  }
253
255
  onRemove={onLineRemove ? () => onLineRemove(line.id) : undefined}
256
+ removeInStepper={removeInStepper}
254
257
  testID={testID ? `${testID}-line-${line.id}` : undefined}
255
258
  />
256
259
  ))}
@@ -45,7 +45,15 @@ export function optionsLine(options: ReadonlyArray<string> | undefined): string
45
45
  export function composeCartLineName(
46
46
  line: Pick<
47
47
  CartLineEntry,
48
- 'name' | 'options' | 'note' | 'quantity' | 'price' | 'originalPrice' | 'unavailable' | 'unavailableLabel'
48
+ | 'name'
49
+ | 'options'
50
+ | 'note'
51
+ | 'quantity'
52
+ | 'price'
53
+ | 'originalPrice'
54
+ | 'secondaryPrice'
55
+ | 'unavailable'
56
+ | 'unavailableLabel'
49
57
  >,
50
58
  ): string {
51
59
  const parts: string[] = [line.name];
@@ -55,6 +63,8 @@ export function composeCartLineName(
55
63
  parts.push(String(line.quantity));
56
64
  if (line.originalPrice) parts.push(`${line.price}, originally ${line.originalPrice}`);
57
65
  else parts.push(line.price);
66
+ // The second currency travels with the price it restates.
67
+ if (line.secondaryPrice) parts.push(line.secondaryPrice);
58
68
  if (line.unavailable) parts.push(line.unavailableLabel ?? 'Sold out');
59
69
  return parts.join(', ');
60
70
  }
@@ -26,6 +26,12 @@ export interface CartLineEntry {
26
26
  price: string;
27
27
  /** PRE-FORMATTED price before a discount, struck through BEFORE `price`. */
28
28
  originalPrice?: string;
29
+ /**
30
+ * A second, PRE-FORMATTED rendering of `price` — the buyer's currency beside
31
+ * the shop's, `"≈ 12,00 €"` — drawn de-emphasised under it. The cart's
32
+ * spelling of `ListingPriceLine.secondary`; drawn as given, nothing converts.
33
+ */
34
+ secondaryPrice?: string;
29
35
  /** How many. Always at least 1 — a line with none of it is a line that was removed. */
30
36
  quantity: number;
31
37
  /** An absolute URL, or an id the app's `ImageResolver` turns into one. */
@@ -45,6 +51,13 @@ export interface CartLineProps extends Omit<CartLineEntry, 'id'> {
45
51
  onRemove?: () => void;
46
52
  /** Names the remove control, which draws no text. Default `"Remove <name>"`. */
47
53
  removeLabel?: string;
54
+ /**
55
+ * Moves removal INTO the stepper: at quantity 1 its `−` becomes a trash button
56
+ * named `removeLabel` that calls `onRemove`, and no separate remove control is
57
+ * drawn. Needs both `onQuantityChange` and `onRemove`; a sold-out line keeps
58
+ * the separate control. Default `false` — the stepper floors at 1.
59
+ */
60
+ removeInStepper?: boolean;
48
61
  /** Default `comfortable`. */
49
62
  density?: CartDensity;
50
63
  /** Replaces the composed name ("Ember flatbread, Large, Extra cheese, 2, €24.00"). */
@@ -151,6 +164,11 @@ export interface CartPanelProps {
151
164
  onLineQuantityChange?: (id: string, quantity: number) => void;
152
165
  /** With it every line draws a remove control. */
153
166
  onLineRemove?: (id: string) => void;
167
+ /**
168
+ * Every line removes from its stepper at quantity 1 instead of drawing a
169
+ * separate remove control (`CartLine`'s `removeInStepper`). Default `false`.
170
+ */
171
+ removeInStepper?: boolean;
154
172
 
155
173
  /** The shortfall warning. Drawn above the totals, where the number it is about is. */
156
174
  minimumOrder?: CartMinimumOrder;
@@ -64,7 +64,7 @@ export function RowLink({
64
64
  };
65
65
  const interactive = Boolean(onPress || href || onLongPress);
66
66
  const style: WebCssStyle = {
67
- ...StyleSheet.absoluteFillObject,
67
+ ...StyleSheet.absoluteFill,
68
68
  borderRadius: CHAT_ROW_RADIUS,
69
69
  '--bloom-chat-ring': paint.ring,
70
70
  };
@@ -44,9 +44,9 @@ function PatternLayer({
44
44
  <View
45
45
  pointerEvents="none"
46
46
  testID="chat-background-pattern"
47
- style={StyleSheet.absoluteFillObject}
47
+ style={StyleSheet.absoluteFill}
48
48
  >
49
- <Svg style={StyleSheet.absoluteFillObject} width="100%" height="100%">
49
+ <Svg style={StyleSheet.absoluteFill} width="100%" height="100%">
50
50
  <Defs>
51
51
  <Pattern
52
52
  id={id}
@@ -83,9 +83,9 @@ function GradientLayer({ colors }: { colors: string[] }) {
83
83
  <View
84
84
  pointerEvents="none"
85
85
  testID="chat-background-gradient"
86
- style={StyleSheet.absoluteFillObject}
86
+ style={StyleSheet.absoluteFill}
87
87
  >
88
- <Svg style={StyleSheet.absoluteFillObject} width="100%" height="100%">
88
+ <Svg style={StyleSheet.absoluteFill} width="100%" height="100%">
89
89
  <Defs>
90
90
  <LinearGradient id={id} x1="0" y1="0" x2="0.35" y2="1">
91
91
  {colors.map((color, i) => (
@@ -159,13 +159,13 @@ function ChatBackgroundComponent({
159
159
  accessibilityElementsHidden
160
160
  importantForAccessibility="no-hide-descendants"
161
161
  testID="chat-background-image"
162
- style={StyleSheet.absoluteFillObject}
162
+ style={StyleSheet.absoluteFill}
163
163
  />
164
164
  <View
165
165
  pointerEvents="none"
166
166
  testID="chat-background-dim"
167
167
  style={[
168
- StyleSheet.absoluteFillObject,
168
+ StyleSheet.absoluteFill,
169
169
  { backgroundColor: paint.imageDim, opacity: dim },
170
170
  ]}
171
171
  />
@@ -15,6 +15,9 @@ import type { CheckoutConfirmProps } from './types';
15
15
  * terms under it, and the state where it must not fire twice.
16
16
  *
17
17
  * button `Button` primary large, full width, "Place order · €24.80"
18
+ * second `secondaryAmount` ("≈ 12,00 €"), 8 under the button, the same
19
+ * centred secondary line as the terms — the button carries ONE
20
+ * amount, the one the charge is made in
18
21
  * terms 12 under it; the centred secondary line every Bloom action card
19
22
  * draws under its primary (`ActionCardNote`)
20
23
  * footer 16 under the terms
@@ -44,6 +47,7 @@ import type { CheckoutConfirmProps } from './types';
44
47
  function CheckoutConfirmComponent({
45
48
  label = CHECKOUT_CONFIRM_LABEL,
46
49
  amount,
50
+ secondaryAmount,
47
51
  terms,
48
52
  onConfirm,
49
53
  disabled = false,
@@ -90,6 +94,11 @@ function CheckoutConfirmComponent({
90
94
  >
91
95
  {words}
92
96
  </Button>
97
+ {secondaryAmount ? (
98
+ <ActionCardNote style={{ marginTop: 8 }} testID={id('secondary-amount')}>
99
+ {secondaryAmount}
100
+ </ActionCardNote>
101
+ ) : null}
93
102
  {terms != null ? (
94
103
  <ActionCardNote style={{ marginTop: 12 }} testID={id('terms')}>
95
104
  {terms}
@@ -89,6 +89,12 @@ export interface CheckoutConfirmProps {
89
89
  * press commits to and the press are one decision.
90
90
  */
91
91
  amount?: string;
92
+ /**
93
+ * A second, PRE-FORMATTED rendering of `amount` — the buyer's currency beside
94
+ * the shop's, `"≈ 12,00 €"` — drawn de-emphasised, centred under the button.
95
+ * Named like `PriceLine.secondaryAmount`; drawn as given, nothing converts.
96
+ */
97
+ secondaryAmount?: string;
92
98
  /**
93
99
  * The terms line under the button — a string, or a node with links in it.
94
100
  * `null` draws none.
package/src/chip/Chip.tsx CHANGED
@@ -242,8 +242,10 @@ const ChipComponent = forwardRef<View, ChipProps>(function ChipComponent(
242
242
  // WHICH attribute is a property of the ROLE, not a preference — a `radio`
243
243
  // carries `aria-checked` and a `tab` `aria-selected`; `aria-pressed` on
244
244
  // either is invalid, and `aria-selected` on a `button` is too.
245
+ // A `checkbox` (a multi-select filter chip) reads `aria-checked` like a
246
+ // `radio`; what differs is that its group allows several at once.
245
247
  const stateProps =
246
- role === 'radio'
248
+ role === 'radio' || role === 'checkbox'
247
249
  ? { accessibilityState: { checked: selected, disabled }, 'aria-checked': selected }
248
250
  : role === 'tab'
249
251
  ? { accessibilityState: { selected, disabled }, 'aria-selected': selected }
package/src/chip/types.ts CHANGED
@@ -26,10 +26,11 @@ export type ChipHue = 'lime' | 'rose' | 'yellow' | 'cyan' | 'blue' | 'purple' |
26
26
 
27
27
  /**
28
28
  * What a pressable chip IS, which decides the state ARIA reads it by:
29
- * a toggle `button` (`aria-pressed`), a `radio` in a radiogroup
30
- * (`aria-checked`), or a `tab` in a tablist (`aria-selected`).
29
+ * a toggle `button` (`aria-pressed`), a `checkbox` in a multi-select filter
30
+ * group (`aria-checked`), a `radio` in a radiogroup (`aria-checked`), or a
31
+ * `tab` in a tablist (`aria-selected`).
31
32
  */
32
- export type ChipRole = 'button' | 'radio' | 'tab';
33
+ export type ChipRole = 'button' | 'checkbox' | 'radio' | 'tab';
33
34
 
34
35
  export interface ChipProps {
35
36
  appearance?: BloomAppearance;
@@ -84,9 +85,10 @@ export interface ChipProps {
84
85
  selected?: boolean;
85
86
  /**
86
87
  * What a pressable chip is to assistive technology. Default `button`
87
- * (`aria-pressed`). Use `radio` inside a `radiogroup` and `tab` inside a
88
- * `tablist` — the state attribute follows the role, and a `radio` announcing
89
- * `aria-pressed` is invalid.
88
+ * (`aria-pressed`). Use `checkbox` for a multi-select filter chip (in a
89
+ * `group`), `radio` inside a `radiogroup` and `tab` inside a `tablist` — the
90
+ * state attribute follows the role, and a `radio` announcing `aria-pressed`
91
+ * is invalid.
90
92
  */
91
93
  role?: ChipRole;
92
94
  /** Whether the chip is disabled. */