@oxyhq/bloom 0.6.24 → 0.7.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 (423) hide show
  1. package/lib/commonjs/alert-dialog/AlertDialog.js +109 -0
  2. package/lib/commonjs/alert-dialog/AlertDialog.js.map +1 -0
  3. package/lib/commonjs/alert-dialog/AlertDialogHost.js +50 -0
  4. package/lib/commonjs/alert-dialog/AlertDialogHost.js.map +1 -0
  5. package/lib/commonjs/alert-dialog/confirm-store.js +80 -0
  6. package/lib/commonjs/alert-dialog/confirm-store.js.map +1 -0
  7. package/lib/commonjs/alert-dialog/index.js +19 -0
  8. package/lib/commonjs/alert-dialog/index.js.map +1 -0
  9. package/lib/commonjs/alert-dialog/index.web.js +19 -0
  10. package/lib/commonjs/alert-dialog/index.web.js.map +1 -0
  11. package/lib/commonjs/alert-dialog/types.js +6 -0
  12. package/lib/commonjs/alert-dialog/types.js.map +1 -0
  13. package/lib/commonjs/combobox/Combobox.js +227 -0
  14. package/lib/commonjs/combobox/Combobox.js.map +1 -0
  15. package/lib/commonjs/combobox/index.js +11 -0
  16. package/lib/commonjs/combobox/index.js.map +1 -0
  17. package/lib/commonjs/combobox/index.web.js +11 -0
  18. package/lib/commonjs/combobox/index.web.js.map +1 -0
  19. package/lib/commonjs/combobox/types.js +6 -0
  20. package/lib/commonjs/combobox/types.js.map +1 -0
  21. package/lib/commonjs/command/Command.js +256 -0
  22. package/lib/commonjs/command/Command.js.map +1 -0
  23. package/lib/commonjs/command/index.js +10 -0
  24. package/lib/commonjs/command/index.js.map +1 -0
  25. package/lib/commonjs/command/index.web.js +10 -0
  26. package/lib/commonjs/command/index.web.js.map +1 -0
  27. package/lib/commonjs/command/types.js +6 -0
  28. package/lib/commonjs/command/types.js.map +1 -0
  29. package/lib/commonjs/field/Field.js +68 -0
  30. package/lib/commonjs/field/Field.js.map +1 -0
  31. package/lib/commonjs/field/index.js +13 -0
  32. package/lib/commonjs/field/index.js.map +1 -0
  33. package/lib/commonjs/field/types.js +6 -0
  34. package/lib/commonjs/field/types.js.map +1 -0
  35. package/lib/commonjs/index.js +117 -25
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/index.web.js +117 -25
  38. package/lib/commonjs/index.web.js.map +1 -1
  39. package/lib/commonjs/input-group/InputGroup.js +172 -0
  40. package/lib/commonjs/input-group/InputGroup.js.map +1 -0
  41. package/lib/commonjs/input-group/index.js +19 -0
  42. package/lib/commonjs/input-group/index.js.map +1 -0
  43. package/lib/commonjs/input-group/types.js +6 -0
  44. package/lib/commonjs/input-group/types.js.map +1 -0
  45. package/lib/commonjs/item/Item.js +172 -0
  46. package/lib/commonjs/item/Item.js.map +1 -0
  47. package/lib/commonjs/item/index.js +13 -0
  48. package/lib/commonjs/item/index.js.map +1 -0
  49. package/lib/commonjs/item/types.js +6 -0
  50. package/lib/commonjs/item/types.js.map +1 -0
  51. package/lib/commonjs/kbd/Kbd.js +79 -0
  52. package/lib/commonjs/kbd/Kbd.js.map +1 -0
  53. package/lib/commonjs/kbd/index.js +13 -0
  54. package/lib/commonjs/kbd/index.js.map +1 -0
  55. package/lib/commonjs/kbd/types.js +6 -0
  56. package/lib/commonjs/kbd/types.js.map +1 -0
  57. package/lib/commonjs/label/Label.js +60 -0
  58. package/lib/commonjs/label/Label.js.map +1 -0
  59. package/lib/commonjs/label/index.js +13 -0
  60. package/lib/commonjs/label/index.js.map +1 -0
  61. package/lib/commonjs/label/types.js +6 -0
  62. package/lib/commonjs/label/types.js.map +1 -0
  63. package/lib/commonjs/popover/context.js +18 -0
  64. package/lib/commonjs/popover/context.js.map +1 -0
  65. package/lib/commonjs/popover/index.js +111 -0
  66. package/lib/commonjs/popover/index.js.map +1 -0
  67. package/lib/commonjs/popover/index.web.js +286 -0
  68. package/lib/commonjs/popover/index.web.js.map +1 -0
  69. package/lib/commonjs/popover/types.js +6 -0
  70. package/lib/commonjs/popover/types.js.map +1 -0
  71. package/lib/commonjs/react-native-css.d.js +2 -0
  72. package/lib/commonjs/react-native-css.d.js.map +1 -0
  73. package/lib/commonjs/slider/Slider.js +255 -0
  74. package/lib/commonjs/slider/Slider.js.map +1 -0
  75. package/lib/commonjs/slider/index.js +13 -0
  76. package/lib/commonjs/slider/index.js.map +1 -0
  77. package/lib/commonjs/slider/types.js +6 -0
  78. package/lib/commonjs/slider/types.js.map +1 -0
  79. package/lib/commonjs/theme/BloomThemeProvider.js +39 -7
  80. package/lib/commonjs/theme/BloomThemeProvider.js.map +1 -1
  81. package/lib/commonjs/theme/color-presets.js +118 -118
  82. package/lib/commonjs/theme/color-presets.js.map +1 -1
  83. package/lib/commonjs/theme/color-scope/index.js +28 -6
  84. package/lib/commonjs/theme/color-scope/index.js.map +1 -1
  85. package/lib/commonjs/theme/color-scope/style-builder.js +35 -0
  86. package/lib/commonjs/theme/color-scope/style-builder.js.map +1 -1
  87. package/lib/commonjs/theme/native-root-vars.js +105 -0
  88. package/lib/commonjs/theme/native-root-vars.js.map +1 -0
  89. package/lib/commonjs/theme/native-root-vars.web.js +27 -0
  90. package/lib/commonjs/theme/native-root-vars.web.js.map +1 -0
  91. package/lib/commonjs/theme/preset-vars.js +4 -1
  92. package/lib/commonjs/theme/preset-vars.js.map +1 -1
  93. package/lib/module/alert-dialog/AlertDialog.js +104 -0
  94. package/lib/module/alert-dialog/AlertDialog.js.map +1 -0
  95. package/lib/module/alert-dialog/AlertDialogHost.js +45 -0
  96. package/lib/module/alert-dialog/AlertDialogHost.js.map +1 -0
  97. package/lib/module/alert-dialog/confirm-store.js +73 -0
  98. package/lib/module/alert-dialog/confirm-store.js.map +1 -0
  99. package/lib/module/alert-dialog/index.js +9 -0
  100. package/lib/module/alert-dialog/index.js.map +1 -0
  101. package/lib/module/alert-dialog/index.web.js +9 -0
  102. package/lib/module/alert-dialog/index.web.js.map +1 -0
  103. package/lib/module/alert-dialog/types.js +4 -0
  104. package/lib/module/alert-dialog/types.js.map +1 -0
  105. package/lib/module/combobox/Combobox.js +222 -0
  106. package/lib/module/combobox/Combobox.js.map +1 -0
  107. package/lib/module/combobox/index.js +6 -0
  108. package/lib/module/combobox/index.js.map +1 -0
  109. package/lib/module/combobox/index.web.js +6 -0
  110. package/lib/module/combobox/index.web.js.map +1 -0
  111. package/lib/module/combobox/types.js +4 -0
  112. package/lib/module/combobox/types.js.map +1 -0
  113. package/lib/module/command/Command.js +251 -0
  114. package/lib/module/command/Command.js.map +1 -0
  115. package/lib/module/command/index.js +6 -0
  116. package/lib/module/command/index.js.map +1 -0
  117. package/lib/module/command/index.web.js +6 -0
  118. package/lib/module/command/index.web.js.map +1 -0
  119. package/lib/module/command/types.js +4 -0
  120. package/lib/module/command/types.js.map +1 -0
  121. package/lib/module/field/Field.js +63 -0
  122. package/lib/module/field/Field.js.map +1 -0
  123. package/lib/module/field/index.js +4 -0
  124. package/lib/module/field/index.js.map +1 -0
  125. package/lib/module/field/types.js +4 -0
  126. package/lib/module/field/types.js.map +1 -0
  127. package/lib/module/index.js +10 -3
  128. package/lib/module/index.js.map +1 -1
  129. package/lib/module/index.web.js +10 -3
  130. package/lib/module/index.web.js.map +1 -1
  131. package/lib/module/input-group/InputGroup.js +167 -0
  132. package/lib/module/input-group/InputGroup.js.map +1 -0
  133. package/lib/module/input-group/index.js +4 -0
  134. package/lib/module/input-group/index.js.map +1 -0
  135. package/lib/module/input-group/types.js +4 -0
  136. package/lib/module/input-group/types.js.map +1 -0
  137. package/lib/module/item/Item.js +167 -0
  138. package/lib/module/item/Item.js.map +1 -0
  139. package/lib/module/item/index.js +4 -0
  140. package/lib/module/item/index.js.map +1 -0
  141. package/lib/module/item/types.js +4 -0
  142. package/lib/module/item/types.js.map +1 -0
  143. package/lib/module/kbd/Kbd.js +74 -0
  144. package/lib/module/kbd/Kbd.js.map +1 -0
  145. package/lib/module/kbd/index.js +4 -0
  146. package/lib/module/kbd/index.js.map +1 -0
  147. package/lib/module/kbd/types.js +4 -0
  148. package/lib/module/kbd/types.js.map +1 -0
  149. package/lib/module/label/Label.js +55 -0
  150. package/lib/module/label/Label.js.map +1 -0
  151. package/lib/module/label/index.js +4 -0
  152. package/lib/module/label/index.js.map +1 -0
  153. package/lib/module/label/types.js +4 -0
  154. package/lib/module/label/types.js.map +1 -0
  155. package/lib/module/popover/context.js +13 -0
  156. package/lib/module/popover/context.js.map +1 -0
  157. package/lib/module/popover/index.js +95 -0
  158. package/lib/module/popover/index.js.map +1 -0
  159. package/lib/module/popover/index.web.js +274 -0
  160. package/lib/module/popover/index.web.js.map +1 -0
  161. package/lib/module/popover/types.js +4 -0
  162. package/lib/module/popover/types.js.map +1 -0
  163. package/lib/module/react-native-css.d.js +2 -0
  164. package/lib/module/react-native-css.d.js.map +1 -0
  165. package/lib/module/slider/Slider.js +250 -0
  166. package/lib/module/slider/Slider.js.map +1 -0
  167. package/lib/module/slider/index.js +4 -0
  168. package/lib/module/slider/index.js.map +1 -0
  169. package/lib/module/slider/types.js +4 -0
  170. package/lib/module/slider/types.js.map +1 -0
  171. package/lib/module/theme/BloomThemeProvider.js +40 -8
  172. package/lib/module/theme/BloomThemeProvider.js.map +1 -1
  173. package/lib/module/theme/color-presets.js +118 -118
  174. package/lib/module/theme/color-presets.js.map +1 -1
  175. package/lib/module/theme/color-scope/index.js +29 -7
  176. package/lib/module/theme/color-scope/index.js.map +1 -1
  177. package/lib/module/theme/color-scope/style-builder.js +35 -0
  178. package/lib/module/theme/color-scope/style-builder.js.map +1 -1
  179. package/lib/module/theme/native-root-vars.js +101 -0
  180. package/lib/module/theme/native-root-vars.js.map +1 -0
  181. package/lib/module/theme/native-root-vars.web.js +23 -0
  182. package/lib/module/theme/native-root-vars.web.js.map +1 -0
  183. package/lib/module/theme/preset-vars.js +4 -1
  184. package/lib/module/theme/preset-vars.js.map +1 -1
  185. package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts +21 -0
  186. package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/alert-dialog/AlertDialogHost.d.ts +15 -0
  188. package/lib/typescript/commonjs/alert-dialog/AlertDialogHost.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/alert-dialog/confirm-store.d.ts +31 -0
  190. package/lib/typescript/commonjs/alert-dialog/confirm-store.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/alert-dialog/index.d.ts +8 -0
  192. package/lib/typescript/commonjs/alert-dialog/index.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/alert-dialog/index.web.d.ts +8 -0
  194. package/lib/typescript/commonjs/alert-dialog/index.web.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/alert-dialog/types.d.ts +44 -0
  196. package/lib/typescript/commonjs/alert-dialog/types.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/combobox/Combobox.d.ts +33 -0
  198. package/lib/typescript/commonjs/combobox/Combobox.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/combobox/index.d.ts +6 -0
  200. package/lib/typescript/commonjs/combobox/index.d.ts.map +1 -0
  201. package/lib/typescript/commonjs/combobox/index.web.d.ts +6 -0
  202. package/lib/typescript/commonjs/combobox/index.web.d.ts.map +1 -0
  203. package/lib/typescript/commonjs/combobox/types.d.ts +40 -0
  204. package/lib/typescript/commonjs/combobox/types.d.ts.map +1 -0
  205. package/lib/typescript/commonjs/command/Command.d.ts +22 -0
  206. package/lib/typescript/commonjs/command/Command.d.ts.map +1 -0
  207. package/lib/typescript/commonjs/command/index.d.ts +6 -0
  208. package/lib/typescript/commonjs/command/index.d.ts.map +1 -0
  209. package/lib/typescript/commonjs/command/index.web.d.ts +6 -0
  210. package/lib/typescript/commonjs/command/index.web.d.ts.map +1 -0
  211. package/lib/typescript/commonjs/command/types.d.ts +46 -0
  212. package/lib/typescript/commonjs/command/types.d.ts.map +1 -0
  213. package/lib/typescript/commonjs/field/Field.d.ts +4 -0
  214. package/lib/typescript/commonjs/field/Field.d.ts.map +1 -0
  215. package/lib/typescript/commonjs/field/index.d.ts +3 -0
  216. package/lib/typescript/commonjs/field/index.d.ts.map +1 -0
  217. package/lib/typescript/commonjs/field/types.d.ts +26 -0
  218. package/lib/typescript/commonjs/field/types.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/icons/common.d.ts +8 -8
  220. package/lib/typescript/commonjs/index.d.ts +19 -0
  221. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  222. package/lib/typescript/commonjs/index.web.d.ts +19 -0
  223. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  224. package/lib/typescript/commonjs/input-group/InputGroup.d.ts +9 -0
  225. package/lib/typescript/commonjs/input-group/InputGroup.d.ts.map +1 -0
  226. package/lib/typescript/commonjs/input-group/index.d.ts +3 -0
  227. package/lib/typescript/commonjs/input-group/index.d.ts.map +1 -0
  228. package/lib/typescript/commonjs/input-group/types.d.ts +35 -0
  229. package/lib/typescript/commonjs/input-group/types.d.ts.map +1 -0
  230. package/lib/typescript/commonjs/item/Item.d.ts +4 -0
  231. package/lib/typescript/commonjs/item/Item.d.ts.map +1 -0
  232. package/lib/typescript/commonjs/item/index.d.ts +3 -0
  233. package/lib/typescript/commonjs/item/index.d.ts.map +1 -0
  234. package/lib/typescript/commonjs/item/types.d.ts +45 -0
  235. package/lib/typescript/commonjs/item/types.d.ts.map +1 -0
  236. package/lib/typescript/commonjs/kbd/Kbd.d.ts +4 -0
  237. package/lib/typescript/commonjs/kbd/Kbd.d.ts.map +1 -0
  238. package/lib/typescript/commonjs/kbd/index.d.ts +3 -0
  239. package/lib/typescript/commonjs/kbd/index.d.ts.map +1 -0
  240. package/lib/typescript/commonjs/kbd/types.d.ts +13 -0
  241. package/lib/typescript/commonjs/kbd/types.d.ts.map +1 -0
  242. package/lib/typescript/commonjs/label/Label.d.ts +4 -0
  243. package/lib/typescript/commonjs/label/Label.d.ts.map +1 -0
  244. package/lib/typescript/commonjs/label/index.d.ts +3 -0
  245. package/lib/typescript/commonjs/label/index.d.ts.map +1 -0
  246. package/lib/typescript/commonjs/label/types.d.ts +27 -0
  247. package/lib/typescript/commonjs/label/types.d.ts.map +1 -0
  248. package/lib/typescript/commonjs/popover/context.d.ts +15 -0
  249. package/lib/typescript/commonjs/popover/context.d.ts.map +1 -0
  250. package/lib/typescript/commonjs/popover/index.d.ts +14 -0
  251. package/lib/typescript/commonjs/popover/index.d.ts.map +1 -0
  252. package/lib/typescript/commonjs/popover/index.web.d.ts +14 -0
  253. package/lib/typescript/commonjs/popover/index.web.d.ts.map +1 -0
  254. package/lib/typescript/commonjs/popover/types.d.ts +54 -0
  255. package/lib/typescript/commonjs/popover/types.d.ts.map +1 -0
  256. package/lib/typescript/commonjs/slider/Slider.d.ts +4 -0
  257. package/lib/typescript/commonjs/slider/Slider.d.ts.map +1 -0
  258. package/lib/typescript/commonjs/slider/index.d.ts +3 -0
  259. package/lib/typescript/commonjs/slider/index.d.ts.map +1 -0
  260. package/lib/typescript/commonjs/slider/types.d.ts +30 -0
  261. package/lib/typescript/commonjs/slider/types.d.ts.map +1 -0
  262. package/lib/typescript/commonjs/theme/BloomThemeProvider.d.ts.map +1 -1
  263. package/lib/typescript/commonjs/theme/color-scope/index.d.ts +9 -2
  264. package/lib/typescript/commonjs/theme/color-scope/index.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/theme/color-scope/style-builder.d.ts +32 -0
  266. package/lib/typescript/commonjs/theme/color-scope/style-builder.d.ts.map +1 -1
  267. package/lib/typescript/commonjs/theme/native-root-vars.d.ts +89 -0
  268. package/lib/typescript/commonjs/theme/native-root-vars.d.ts.map +1 -0
  269. package/lib/typescript/commonjs/theme/native-root-vars.web.d.ts +20 -0
  270. package/lib/typescript/commonjs/theme/native-root-vars.web.d.ts.map +1 -0
  271. package/lib/typescript/commonjs/theme/preset-vars.d.ts.map +1 -1
  272. package/lib/typescript/module/alert-dialog/AlertDialog.d.ts +21 -0
  273. package/lib/typescript/module/alert-dialog/AlertDialog.d.ts.map +1 -0
  274. package/lib/typescript/module/alert-dialog/AlertDialogHost.d.ts +15 -0
  275. package/lib/typescript/module/alert-dialog/AlertDialogHost.d.ts.map +1 -0
  276. package/lib/typescript/module/alert-dialog/confirm-store.d.ts +31 -0
  277. package/lib/typescript/module/alert-dialog/confirm-store.d.ts.map +1 -0
  278. package/lib/typescript/module/alert-dialog/index.d.ts +8 -0
  279. package/lib/typescript/module/alert-dialog/index.d.ts.map +1 -0
  280. package/lib/typescript/module/alert-dialog/index.web.d.ts +8 -0
  281. package/lib/typescript/module/alert-dialog/index.web.d.ts.map +1 -0
  282. package/lib/typescript/module/alert-dialog/types.d.ts +44 -0
  283. package/lib/typescript/module/alert-dialog/types.d.ts.map +1 -0
  284. package/lib/typescript/module/combobox/Combobox.d.ts +33 -0
  285. package/lib/typescript/module/combobox/Combobox.d.ts.map +1 -0
  286. package/lib/typescript/module/combobox/index.d.ts +6 -0
  287. package/lib/typescript/module/combobox/index.d.ts.map +1 -0
  288. package/lib/typescript/module/combobox/index.web.d.ts +6 -0
  289. package/lib/typescript/module/combobox/index.web.d.ts.map +1 -0
  290. package/lib/typescript/module/combobox/types.d.ts +40 -0
  291. package/lib/typescript/module/combobox/types.d.ts.map +1 -0
  292. package/lib/typescript/module/command/Command.d.ts +22 -0
  293. package/lib/typescript/module/command/Command.d.ts.map +1 -0
  294. package/lib/typescript/module/command/index.d.ts +6 -0
  295. package/lib/typescript/module/command/index.d.ts.map +1 -0
  296. package/lib/typescript/module/command/index.web.d.ts +6 -0
  297. package/lib/typescript/module/command/index.web.d.ts.map +1 -0
  298. package/lib/typescript/module/command/types.d.ts +46 -0
  299. package/lib/typescript/module/command/types.d.ts.map +1 -0
  300. package/lib/typescript/module/field/Field.d.ts +4 -0
  301. package/lib/typescript/module/field/Field.d.ts.map +1 -0
  302. package/lib/typescript/module/field/index.d.ts +3 -0
  303. package/lib/typescript/module/field/index.d.ts.map +1 -0
  304. package/lib/typescript/module/field/types.d.ts +26 -0
  305. package/lib/typescript/module/field/types.d.ts.map +1 -0
  306. package/lib/typescript/module/icons/common.d.ts +8 -8
  307. package/lib/typescript/module/index.d.ts +19 -0
  308. package/lib/typescript/module/index.d.ts.map +1 -1
  309. package/lib/typescript/module/index.web.d.ts +19 -0
  310. package/lib/typescript/module/index.web.d.ts.map +1 -1
  311. package/lib/typescript/module/input-group/InputGroup.d.ts +9 -0
  312. package/lib/typescript/module/input-group/InputGroup.d.ts.map +1 -0
  313. package/lib/typescript/module/input-group/index.d.ts +3 -0
  314. package/lib/typescript/module/input-group/index.d.ts.map +1 -0
  315. package/lib/typescript/module/input-group/types.d.ts +35 -0
  316. package/lib/typescript/module/input-group/types.d.ts.map +1 -0
  317. package/lib/typescript/module/item/Item.d.ts +4 -0
  318. package/lib/typescript/module/item/Item.d.ts.map +1 -0
  319. package/lib/typescript/module/item/index.d.ts +3 -0
  320. package/lib/typescript/module/item/index.d.ts.map +1 -0
  321. package/lib/typescript/module/item/types.d.ts +45 -0
  322. package/lib/typescript/module/item/types.d.ts.map +1 -0
  323. package/lib/typescript/module/kbd/Kbd.d.ts +4 -0
  324. package/lib/typescript/module/kbd/Kbd.d.ts.map +1 -0
  325. package/lib/typescript/module/kbd/index.d.ts +3 -0
  326. package/lib/typescript/module/kbd/index.d.ts.map +1 -0
  327. package/lib/typescript/module/kbd/types.d.ts +13 -0
  328. package/lib/typescript/module/kbd/types.d.ts.map +1 -0
  329. package/lib/typescript/module/label/Label.d.ts +4 -0
  330. package/lib/typescript/module/label/Label.d.ts.map +1 -0
  331. package/lib/typescript/module/label/index.d.ts +3 -0
  332. package/lib/typescript/module/label/index.d.ts.map +1 -0
  333. package/lib/typescript/module/label/types.d.ts +27 -0
  334. package/lib/typescript/module/label/types.d.ts.map +1 -0
  335. package/lib/typescript/module/popover/context.d.ts +15 -0
  336. package/lib/typescript/module/popover/context.d.ts.map +1 -0
  337. package/lib/typescript/module/popover/index.d.ts +14 -0
  338. package/lib/typescript/module/popover/index.d.ts.map +1 -0
  339. package/lib/typescript/module/popover/index.web.d.ts +14 -0
  340. package/lib/typescript/module/popover/index.web.d.ts.map +1 -0
  341. package/lib/typescript/module/popover/types.d.ts +54 -0
  342. package/lib/typescript/module/popover/types.d.ts.map +1 -0
  343. package/lib/typescript/module/slider/Slider.d.ts +4 -0
  344. package/lib/typescript/module/slider/Slider.d.ts.map +1 -0
  345. package/lib/typescript/module/slider/index.d.ts +3 -0
  346. package/lib/typescript/module/slider/index.d.ts.map +1 -0
  347. package/lib/typescript/module/slider/types.d.ts +30 -0
  348. package/lib/typescript/module/slider/types.d.ts.map +1 -0
  349. package/lib/typescript/module/theme/BloomThemeProvider.d.ts.map +1 -1
  350. package/lib/typescript/module/theme/color-scope/index.d.ts +9 -2
  351. package/lib/typescript/module/theme/color-scope/index.d.ts.map +1 -1
  352. package/lib/typescript/module/theme/color-scope/style-builder.d.ts +32 -0
  353. package/lib/typescript/module/theme/color-scope/style-builder.d.ts.map +1 -1
  354. package/lib/typescript/module/theme/native-root-vars.d.ts +89 -0
  355. package/lib/typescript/module/theme/native-root-vars.d.ts.map +1 -0
  356. package/lib/typescript/module/theme/native-root-vars.web.d.ts +20 -0
  357. package/lib/typescript/module/theme/native-root-vars.web.d.ts.map +1 -0
  358. package/lib/typescript/module/theme/preset-vars.d.ts.map +1 -1
  359. package/package.json +141 -1
  360. package/src/__tests__/Field.test.tsx +55 -0
  361. package/src/__tests__/InputGroup.test.tsx +44 -0
  362. package/src/__tests__/Item.test.tsx +73 -0
  363. package/src/__tests__/Kbd.test.tsx +27 -0
  364. package/src/__tests__/Label.test.tsx +30 -0
  365. package/src/__tests__/Slider.test.tsx +38 -0
  366. package/src/__tests__/confirm-store.test.ts +58 -0
  367. package/src/__tests__/native-root-vars.test.ts +125 -0
  368. package/src/alert-dialog/AlertDialog.stories.tsx +61 -0
  369. package/src/alert-dialog/AlertDialog.tsx +120 -0
  370. package/src/alert-dialog/AlertDialogHost.tsx +51 -0
  371. package/src/alert-dialog/confirm-store.ts +77 -0
  372. package/src/alert-dialog/index.ts +13 -0
  373. package/src/alert-dialog/index.web.ts +13 -0
  374. package/src/alert-dialog/types.ts +46 -0
  375. package/src/combobox/Combobox.stories.tsx +40 -0
  376. package/src/combobox/Combobox.tsx +274 -0
  377. package/src/combobox/index.ts +6 -0
  378. package/src/combobox/index.web.ts +6 -0
  379. package/src/combobox/types.ts +41 -0
  380. package/src/command/Command.stories.tsx +60 -0
  381. package/src/command/Command.tsx +276 -0
  382. package/src/command/index.ts +6 -0
  383. package/src/command/index.web.ts +6 -0
  384. package/src/command/types.ts +47 -0
  385. package/src/field/Field.stories.tsx +54 -0
  386. package/src/field/Field.tsx +77 -0
  387. package/src/field/index.ts +2 -0
  388. package/src/field/types.ts +26 -0
  389. package/src/index.ts +23 -0
  390. package/src/index.web.ts +23 -0
  391. package/src/input-group/InputGroup.stories.tsx +65 -0
  392. package/src/input-group/InputGroup.tsx +184 -0
  393. package/src/input-group/index.ts +2 -0
  394. package/src/input-group/types.ts +36 -0
  395. package/src/item/Item.stories.tsx +43 -0
  396. package/src/item/Item.tsx +180 -0
  397. package/src/item/index.ts +2 -0
  398. package/src/item/types.ts +45 -0
  399. package/src/kbd/Kbd.stories.tsx +36 -0
  400. package/src/kbd/Kbd.tsx +76 -0
  401. package/src/kbd/index.ts +2 -0
  402. package/src/kbd/types.ts +13 -0
  403. package/src/label/Label.stories.tsx +32 -0
  404. package/src/label/Label.tsx +64 -0
  405. package/src/label/index.ts +2 -0
  406. package/src/label/types.ts +27 -0
  407. package/src/popover/Popover.stories.tsx +61 -0
  408. package/src/popover/context.ts +26 -0
  409. package/src/popover/index.tsx +104 -0
  410. package/src/popover/index.web.tsx +325 -0
  411. package/src/popover/types.ts +60 -0
  412. package/src/react-native-css.d.ts +69 -0
  413. package/src/slider/Slider.stories.tsx +46 -0
  414. package/src/slider/Slider.tsx +275 -0
  415. package/src/slider/index.ts +2 -0
  416. package/src/slider/types.ts +30 -0
  417. package/src/theme/BloomThemeProvider.tsx +32 -6
  418. package/src/theme/color-presets.ts +118 -118
  419. package/src/theme/color-scope/index.tsx +30 -8
  420. package/src/theme/color-scope/style-builder.ts +40 -0
  421. package/src/theme/native-root-vars.ts +102 -0
  422. package/src/theme/native-root-vars.web.ts +22 -0
  423. package/src/theme/preset-vars.ts +4 -1
@@ -0,0 +1,325 @@
1
+ import React, {
2
+ useCallback,
3
+ useEffect,
4
+ useId,
5
+ useLayoutEffect,
6
+ useMemo,
7
+ useRef,
8
+ useState,
9
+ } from 'react';
10
+ import { Pressable, StyleSheet, View } from 'react-native';
11
+
12
+ import { useTheme } from '../theme/use-theme';
13
+ import { Portal } from '../portal/index.web';
14
+ import { PopoverContext, usePopoverContext } from './context';
15
+ import type {
16
+ PopoverContentProps,
17
+ PopoverControlProps,
18
+ PopoverPlacement,
19
+ PopoverRootProps,
20
+ PopoverTriggerProps,
21
+ } from './types';
22
+
23
+ export type {
24
+ PopoverControlProps,
25
+ PopoverContentProps,
26
+ PopoverTriggerProps,
27
+ PopoverRootProps,
28
+ PopoverPlacement,
29
+ PopoverTriggerRenderProps,
30
+ PopoverTriggerState,
31
+ } from './types';
32
+
33
+ export { usePopoverContext };
34
+
35
+ /**
36
+ * Web self-contained control. Unlike native (which proxies a `BottomSheet`
37
+ * via `useDialogControl`), the web popover owns its own open state and
38
+ * exposes a `DialogControlProps`-shaped handle for API parity.
39
+ */
40
+ export function usePopoverControl(): PopoverControlProps {
41
+ const id = useId();
42
+ const [, setIsOpen] = useState(false);
43
+ const ref = useRef<{ open: () => void; close: (cb?: () => void) => void }>({
44
+ open: () => {},
45
+ close: () => {},
46
+ });
47
+
48
+ return useMemo<PopoverControlProps>(
49
+ () => ({
50
+ id,
51
+ ref,
52
+ open: () => setIsOpen(true),
53
+ close: (cb) => {
54
+ setIsOpen(false);
55
+ cb?.();
56
+ },
57
+ }),
58
+ [id],
59
+ );
60
+ }
61
+
62
+ interface Rect {
63
+ x: number;
64
+ y: number;
65
+ width: number;
66
+ height: number;
67
+ }
68
+
69
+ export function Root({ children, control }: PopoverRootProps) {
70
+ const id = useId();
71
+ const [isOpen, setIsOpen] = useState(false);
72
+ const triggerRef = useRef<View | null>(null);
73
+ const refHandle = useRef<{ open: () => void; close: (cb?: () => void) => void }>({
74
+ open: () => {},
75
+ close: () => {},
76
+ });
77
+
78
+ const activeControl = useMemo<PopoverControlProps>(
79
+ () =>
80
+ control ?? {
81
+ id,
82
+ ref: refHandle,
83
+ open: () => setIsOpen(true),
84
+ close: (cb) => {
85
+ setIsOpen(false);
86
+ cb?.();
87
+ },
88
+ },
89
+ [control, id],
90
+ );
91
+
92
+ // When an external control is provided, mirror its open/close into local
93
+ // state so Content renders. The external control still drives `open/close`.
94
+ const wrappedControl = useMemo<PopoverControlProps>(
95
+ () => ({
96
+ ...activeControl,
97
+ open: () => {
98
+ setIsOpen(true);
99
+ activeControl.open();
100
+ },
101
+ close: (cb) => {
102
+ setIsOpen(false);
103
+ activeControl.close(cb);
104
+ },
105
+ }),
106
+ [activeControl],
107
+ );
108
+
109
+ const context = useMemo(
110
+ () => ({ control: wrappedControl, isOpen, triggerRef }),
111
+ [wrappedControl, isOpen],
112
+ );
113
+
114
+ return (
115
+ <PopoverContext.Provider value={context}>
116
+ {children}
117
+ </PopoverContext.Provider>
118
+ );
119
+ }
120
+
121
+ export function Trigger({ children, label }: PopoverTriggerProps) {
122
+ const { control, triggerRef, isOpen } = usePopoverContext();
123
+ const [hovered, setHovered] = useState(false);
124
+ const [focused, setFocused] = useState(false);
125
+
126
+ const rendered = children({
127
+ control,
128
+ state: { hovered, focused, pressed: false },
129
+ props: {
130
+ onPress: () => control.open(),
131
+ onFocus: () => setFocused(true),
132
+ onBlur: () => setFocused(false),
133
+ accessibilityLabel: label,
134
+ accessibilityRole: 'button',
135
+ 'aria-expanded': isOpen,
136
+ 'aria-haspopup': 'dialog',
137
+ },
138
+ });
139
+
140
+ return (
141
+ <View
142
+ ref={triggerRef}
143
+ collapsable={false}
144
+ style={styles.triggerWrap}
145
+ {...({
146
+ onMouseEnter: () => setHovered(true),
147
+ onMouseLeave: () => setHovered(false),
148
+ } as Record<string, () => void>)}>
149
+ {rendered}
150
+ </View>
151
+ );
152
+ }
153
+
154
+ function resolvePosition(
155
+ rect: Rect,
156
+ panel: { width: number; height: number },
157
+ placement: PopoverPlacement,
158
+ offset: number,
159
+ ): { left: number; top: number } {
160
+ const viewportW = typeof window !== 'undefined' ? window.innerWidth : 0;
161
+ const viewportH = typeof window !== 'undefined' ? window.innerHeight : 0;
162
+ const isTop = placement.startsWith('top');
163
+
164
+ let top = isTop ? rect.y - panel.height - offset : rect.y + rect.height + offset;
165
+
166
+ // Flip if it would overflow the chosen edge.
167
+ if (!isTop && top + panel.height > viewportH && rect.y - panel.height - offset > 0) {
168
+ top = rect.y - panel.height - offset;
169
+ } else if (isTop && top < 0 && rect.y + rect.height + offset + panel.height <= viewportH) {
170
+ top = rect.y + rect.height + offset;
171
+ }
172
+
173
+ let left: number;
174
+ if (placement.endsWith('end')) {
175
+ left = rect.x + rect.width - panel.width;
176
+ } else if (placement.endsWith('start')) {
177
+ left = rect.x;
178
+ } else {
179
+ // bare 'bottom' / 'top' → center-align under the trigger.
180
+ left = rect.x + rect.width / 2 - panel.width / 2;
181
+ }
182
+
183
+ // Clamp horizontally into the viewport with an 8px gutter.
184
+ const gutter = 8;
185
+ left = Math.max(gutter, Math.min(left, viewportW - panel.width - gutter));
186
+ top = Math.max(gutter, top);
187
+
188
+ return { left, top };
189
+ }
190
+
191
+ export function Content({
192
+ children,
193
+ label = 'Popover',
194
+ placement = 'bottom-start',
195
+ offset = 6,
196
+ minWidth,
197
+ maxWidth = 360,
198
+ dismissible = true,
199
+ style,
200
+ testID,
201
+ }: PopoverContentProps) {
202
+ const theme = useTheme();
203
+ const { control, isOpen, triggerRef } = usePopoverContext();
204
+ const [rect, setRect] = useState<Rect | null>(null);
205
+ const [panelSize, setPanelSize] = useState<{ width: number; height: number } | null>(null);
206
+ const panelRef = useRef<View | null>(null);
207
+
208
+ const measure = useCallback(() => {
209
+ const node = triggerRef.current;
210
+ if (!node) return;
211
+ node.measureInWindow((x, y, width, height) => {
212
+ setRect({ x, y, width, height });
213
+ });
214
+ }, [triggerRef]);
215
+
216
+ useLayoutEffect(() => {
217
+ if (!isOpen) {
218
+ setRect(null);
219
+ setPanelSize(null);
220
+ return;
221
+ }
222
+ measure();
223
+ }, [isOpen, measure]);
224
+
225
+ // Reposition on scroll / resize while open.
226
+ useEffect(() => {
227
+ if (!isOpen || typeof window === 'undefined') return;
228
+ const onChange = () => measure();
229
+ window.addEventListener('resize', onChange);
230
+ window.addEventListener('scroll', onChange, true);
231
+ return () => {
232
+ window.removeEventListener('resize', onChange);
233
+ window.removeEventListener('scroll', onChange, true);
234
+ };
235
+ }, [isOpen, measure]);
236
+
237
+ // Escape to dismiss.
238
+ useEffect(() => {
239
+ if (!isOpen || !dismissible || typeof document === 'undefined') return;
240
+ const onKey = (e: KeyboardEvent) => {
241
+ if (e.key === 'Escape') {
242
+ e.stopPropagation();
243
+ control.close();
244
+ }
245
+ };
246
+ document.addEventListener('keydown', onKey);
247
+ return () => document.removeEventListener('keydown', onKey);
248
+ }, [isOpen, dismissible, control]);
249
+
250
+ if (!isOpen || !rect) return null;
251
+
252
+ const resolvedMinWidth = minWidth ?? rect.width;
253
+ const position = panelSize
254
+ ? resolvePosition(rect, panelSize, placement, offset)
255
+ : { left: rect.x, top: rect.y + rect.height + offset };
256
+
257
+ return (
258
+ <Portal>
259
+ {dismissible ? (
260
+ <Pressable
261
+ style={styles.backdrop}
262
+ onPress={() => control.close()}
263
+ accessibilityLabel="Dismiss popover"
264
+ />
265
+ ) : null}
266
+ <View
267
+ ref={panelRef}
268
+ accessibilityRole="none"
269
+ aria-label={label}
270
+ testID={testID}
271
+ onLayout={(e) =>
272
+ setPanelSize({
273
+ width: e.nativeEvent.layout.width,
274
+ height: e.nativeEvent.layout.height,
275
+ })
276
+ }
277
+ style={[
278
+ styles.panel,
279
+ {
280
+ left: position.left,
281
+ top: position.top,
282
+ minWidth: resolvedMinWidth,
283
+ maxWidth,
284
+ backgroundColor: theme.isDark
285
+ ? theme.colors.backgroundSecondary
286
+ : theme.colors.background,
287
+ borderColor: theme.colors.borderLight,
288
+ shadowColor: theme.colors.shadow,
289
+ // Hide until measured to avoid a one-frame jump.
290
+ opacity: panelSize ? 1 : 0,
291
+ },
292
+ style,
293
+ ]}>
294
+ {children}
295
+ </View>
296
+ </Portal>
297
+ );
298
+ }
299
+
300
+ const styles = StyleSheet.create({
301
+ triggerWrap: {
302
+ alignSelf: 'flex-start',
303
+ },
304
+ backdrop: {
305
+ position: 'fixed' as 'absolute',
306
+ top: 0,
307
+ left: 0,
308
+ right: 0,
309
+ bottom: 0,
310
+ zIndex: 50,
311
+ pointerEvents: 'auto',
312
+ },
313
+ panel: {
314
+ position: 'fixed' as 'absolute',
315
+ zIndex: 60,
316
+ borderRadius: 12,
317
+ borderWidth: 1,
318
+ paddingVertical: 4,
319
+ overflow: 'hidden',
320
+ shadowOpacity: 0.15,
321
+ shadowRadius: 12,
322
+ shadowOffset: { width: 0, height: 4 },
323
+ pointerEvents: 'auto',
324
+ },
325
+ });
@@ -0,0 +1,60 @@
1
+ import type { StyleProp, ViewStyle } from 'react-native';
2
+ import type { DialogControlProps } from '../dialog/types';
3
+
4
+ export type PopoverPlacement = 'bottom' | 'top' | 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
5
+
6
+ export type PopoverControlProps = DialogControlProps;
7
+
8
+ export interface PopoverTriggerState {
9
+ hovered: boolean;
10
+ focused: boolean;
11
+ pressed: boolean;
12
+ }
13
+
14
+ export interface PopoverTriggerRenderProps {
15
+ control: PopoverControlProps;
16
+ state: PopoverTriggerState;
17
+ props: {
18
+ onPress: () => void;
19
+ onFocus: () => void;
20
+ onBlur: () => void;
21
+ accessibilityLabel?: string;
22
+ accessibilityRole?: 'button';
23
+ 'aria-expanded'?: boolean;
24
+ 'aria-haspopup'?: 'dialog';
25
+ };
26
+ }
27
+
28
+ export interface PopoverTriggerProps {
29
+ /** Render-prop receiving the control + interaction state + a11y props. */
30
+ children: (renderProps: PopoverTriggerRenderProps) => React.ReactElement;
31
+ /** Accessibility label for the trigger. */
32
+ label?: string;
33
+ }
34
+
35
+ export interface PopoverContentProps {
36
+ children: React.ReactNode;
37
+ /** Accessibility label for the floating panel. */
38
+ label?: string;
39
+ /**
40
+ * Preferred placement relative to the trigger (web only — native presents a
41
+ * bottom sheet). Defaults to `'bottom-start'`.
42
+ */
43
+ placement?: PopoverPlacement;
44
+ /** Gap in px between the trigger and the panel (web). Defaults to `6`. */
45
+ offset?: number;
46
+ /** Minimum panel width in px (web). Defaults to the trigger width. */
47
+ minWidth?: number;
48
+ /** Max panel width in px (web). Defaults to `360`. */
49
+ maxWidth?: number;
50
+ /** Dismiss on outside press / Escape. Defaults to `true`. */
51
+ dismissible?: boolean;
52
+ style?: StyleProp<ViewStyle>;
53
+ testID?: string;
54
+ }
55
+
56
+ export interface PopoverRootProps {
57
+ children: React.ReactNode;
58
+ /** Optionally supply your own control (from `usePopoverControl`). */
59
+ control?: PopoverControlProps;
60
+ }
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Ambient declaration for `react-native-css/native-internal`.
3
+ *
4
+ * react-native-css is NOT a Bloom dependency — it arrives transitively via the
5
+ * host app's NativeWind install (NativeWind 5 is built on react-native-css@3).
6
+ * Bloom's `native-root-vars.native.ts` statically imports `rootVariables` from
7
+ * this subpath so Metro resolves the `import` export condition to the package's
8
+ * `module` build — the SAME family instance the react-native-css renderer
9
+ * (`varResolver`) subscribes to. A runtime `require()` would resolve the
10
+ * `require` condition to the separate `commonjs` build, whose `rootVariables`
11
+ * is a distinct, un-observed family instance (see the file-level comment in
12
+ * `native-root-vars.native.ts`).
13
+ *
14
+ * Because the package isn't installed in Bloom, `tsc` can't see its published
15
+ * types, so we declare the slice we use here — typed to match react-native-css
16
+ * @3.0.7's `dist/typescript/.../native-internal/root.d.ts` exactly (no `any`,
17
+ * no shims). This file is `.native`-only in spirit; the web fork never imports
18
+ * the subpath, so on web bundlers the static import is never reached.
19
+ */
20
+ declare module 'react-native-css/native-internal' {
21
+ /**
22
+ * A leaf style value. Mirrors react-native-css's `compiler.types`
23
+ * `StyleDescriptor`. Bloom only ever writes string HSL triples / `hsl(...)`
24
+ * strings, but the family is typed against the full descriptor union.
25
+ */
26
+ type StyleDescriptor =
27
+ | string
28
+ | number
29
+ | boolean
30
+ | undefined
31
+ | StyleDescriptor[];
32
+
33
+ /**
34
+ * A media-conditioned predicate guarding a variable value. Bloom never emits
35
+ * conditioned values (its preset vars are unconditional), so the inner shape
36
+ * is intentionally opaque here — declaring the full recursive union would
37
+ * duplicate a large compiler type we never construct.
38
+ */
39
+ type MediaCondition = readonly unknown[];
40
+
41
+ /**
42
+ * A single variable value: a `[value]` tuple, optionally guarded by media
43
+ * conditions. Mirrors react-native-css's `VariableValue`. `rootVariables(...).set`
44
+ * takes a `VariableValue[]` (the variable's full ordered value list).
45
+ */
46
+ type VariableValue =
47
+ | readonly [StyleDescriptor]
48
+ | readonly [StyleDescriptor, readonly MediaCondition[]];
49
+
50
+ /**
51
+ * The reactive cell react-native-css renders from. `rootVariables(name)`
52
+ * returns one of these; `.set` replaces its value list and notifies the
53
+ * renderer's subscribed effects. Mirrors `Observable<StyleDescriptor, VariableValue[]>`.
54
+ */
55
+ interface Observable {
56
+ set: (value: readonly VariableValue[]) => void;
57
+ }
58
+
59
+ /**
60
+ * The GLOBAL root-variable family — `rootVariables(name)` returns the
61
+ * observable for the bare variable `name` (no leading `--`). This is the
62
+ * exact callable react-native-css's compiled `:root {}` / `@theme` vars are
63
+ * written through (`StyleCollection.inject` → `rootVariables(name).set(...)`).
64
+ */
65
+ export const rootVariables: ((name: string) => Observable) & {
66
+ delete(name: string): boolean;
67
+ clear(): void;
68
+ };
69
+ }
@@ -0,0 +1,46 @@
1
+ import React, { useState } from 'react';
2
+ import { View } from 'react-native';
3
+ import type { Meta, StoryObj } from '@storybook/react-vite';
4
+
5
+ import { Slider } from './Slider';
6
+ import { Text } from '../typography';
7
+
8
+ const meta: Meta = {
9
+ title: 'Components/Slider',
10
+ };
11
+
12
+ export default meta;
13
+
14
+ type Story = StoryObj;
15
+
16
+ export const Basic: Story = {
17
+ render: () => {
18
+ const [value, setValue] = useState(40);
19
+ return (
20
+ <View style={{ width: 320, gap: 8 }}>
21
+ <Text>{`Value: ${value}`}</Text>
22
+ <Slider value={value} onValueChange={setValue} min={0} max={100} />
23
+ </View>
24
+ );
25
+ },
26
+ };
27
+
28
+ export const Stepped: Story = {
29
+ render: () => {
30
+ const [value, setValue] = useState(2);
31
+ return (
32
+ <View style={{ width: 320, gap: 8 }}>
33
+ <Text>{`Step 0–5: ${value}`}</Text>
34
+ <Slider value={value} onValueChange={setValue} min={0} max={5} step={1} />
35
+ </View>
36
+ );
37
+ },
38
+ };
39
+
40
+ export const Disabled: Story = {
41
+ render: () => (
42
+ <View style={{ width: 320 }}>
43
+ <Slider value={60} onValueChange={() => {}} disabled />
44
+ </View>
45
+ ),
46
+ };