@oxy.so/bloom 2.12.4 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/README.md +4 -4
  2. package/docs/button-group.mdx +46 -4
  3. package/docs/composition.mdx +159 -0
  4. package/docs/field.mdx +39 -1
  5. package/docs/glass.mdx +46 -0
  6. package/docs/layout.mdx +72 -4
  7. package/docs/migrating-to-3.0.mdx +169 -0
  8. package/docs/page-header.mdx +192 -36
  9. package/lib/commonjs/button/Button.js +2 -0
  10. package/lib/commonjs/button/Button.js.map +1 -1
  11. package/lib/commonjs/button-group/ButtonGroup.js +124 -19
  12. package/lib/commonjs/button-group/ButtonGroup.js.map +1 -1
  13. package/lib/commonjs/control-surface/ControlSurface.js +46 -0
  14. package/lib/commonjs/control-surface/ControlSurface.js.map +1 -0
  15. package/lib/commonjs/control-surface/context.js +84 -0
  16. package/lib/commonjs/control-surface/context.js.map +1 -0
  17. package/lib/commonjs/control-surface/index.js +26 -0
  18. package/lib/commonjs/control-surface/index.js.map +1 -0
  19. package/lib/commonjs/control-surface/types.js +6 -0
  20. package/lib/commonjs/control-surface/types.js.map +1 -0
  21. package/lib/commonjs/field/Field.js +71 -26
  22. package/lib/commonjs/field/Field.js.map +1 -1
  23. package/lib/commonjs/field/context.js +80 -0
  24. package/lib/commonjs/field/context.js.map +1 -0
  25. package/lib/commonjs/field/index.js +7 -0
  26. package/lib/commonjs/field/index.js.map +1 -1
  27. package/lib/commonjs/floating/TriggerSlot.js +32 -0
  28. package/lib/commonjs/floating/TriggerSlot.js.map +1 -1
  29. package/lib/commonjs/glass/GlassIsland.js +107 -0
  30. package/lib/commonjs/glass/GlassIsland.js.map +1 -0
  31. package/lib/commonjs/glass/GlassSurface.js +4 -1
  32. package/lib/commonjs/glass/GlassSurface.js.map +1 -1
  33. package/lib/commonjs/glass/index.js +7 -0
  34. package/lib/commonjs/glass/index.js.map +1 -1
  35. package/lib/commonjs/index.js +564 -517
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/index.web.js +564 -517
  38. package/lib/commonjs/index.web.js.map +1 -1
  39. package/lib/commonjs/label/Label.js +4 -1
  40. package/lib/commonjs/label/Label.js.map +1 -1
  41. package/lib/commonjs/layout/bottom-edge.js +3 -42
  42. package/lib/commonjs/layout/bottom-edge.js.map +1 -1
  43. package/lib/commonjs/layout/edge-store.js +65 -0
  44. package/lib/commonjs/layout/edge-store.js.map +1 -0
  45. package/lib/commonjs/layout/index.js +32 -0
  46. package/lib/commonjs/layout/index.js.map +1 -1
  47. package/lib/commonjs/layout/scroll-offset.js +83 -0
  48. package/lib/commonjs/layout/scroll-offset.js.map +1 -0
  49. package/lib/commonjs/layout/top-edge.js +109 -0
  50. package/lib/commonjs/layout/top-edge.js.map +1 -0
  51. package/lib/commonjs/page-header/EdgeScrim.js +136 -0
  52. package/lib/commonjs/page-header/EdgeScrim.js.map +1 -0
  53. package/lib/commonjs/page-header/PageHeader.js +236 -61
  54. package/lib/commonjs/page-header/PageHeader.js.map +1 -1
  55. package/lib/commonjs/provider/BloomProvider.js +5 -2
  56. package/lib/commonjs/provider/BloomProvider.js.map +1 -1
  57. package/lib/commonjs/social-button/OxyMark.js +2 -2
  58. package/lib/commonjs/social-button/OxyMark.js.map +1 -1
  59. package/lib/commonjs/social-button/SocialButton.js +2 -2
  60. package/lib/commonjs/social-button/SocialButton.js.map +1 -1
  61. package/lib/commonjs/styles/svg-id.js +29 -0
  62. package/lib/commonjs/styles/svg-id.js.map +1 -0
  63. package/lib/commonjs/text-field/TextField.js +39 -6
  64. package/lib/commonjs/text-field/TextField.js.map +1 -1
  65. package/lib/commonjs/theme/glass-colors.js +81 -1
  66. package/lib/commonjs/theme/glass-colors.js.map +1 -1
  67. package/lib/module/button/Button.js +2 -0
  68. package/lib/module/button/Button.js.map +1 -1
  69. package/lib/module/button-group/ButtonGroup.js +124 -19
  70. package/lib/module/button-group/ButtonGroup.js.map +1 -1
  71. package/lib/module/control-surface/ControlSurface.js +41 -0
  72. package/lib/module/control-surface/ControlSurface.js.map +1 -0
  73. package/lib/module/control-surface/context.js +77 -0
  74. package/lib/module/control-surface/context.js.map +1 -0
  75. package/lib/module/control-surface/index.js +5 -0
  76. package/lib/module/control-surface/index.js.map +1 -0
  77. package/lib/module/control-surface/types.js +4 -0
  78. package/lib/module/control-surface/types.js.map +1 -0
  79. package/lib/module/field/Field.js +72 -27
  80. package/lib/module/field/Field.js.map +1 -1
  81. package/lib/module/field/context.js +74 -0
  82. package/lib/module/field/context.js.map +1 -0
  83. package/lib/module/field/index.js +1 -0
  84. package/lib/module/field/index.js.map +1 -1
  85. package/lib/module/floating/TriggerSlot.js +33 -1
  86. package/lib/module/floating/TriggerSlot.js.map +1 -1
  87. package/lib/module/glass/GlassIsland.js +102 -0
  88. package/lib/module/glass/GlassIsland.js.map +1 -0
  89. package/lib/module/glass/GlassSurface.js +5 -2
  90. package/lib/module/glass/GlassSurface.js.map +1 -1
  91. package/lib/module/glass/index.js +1 -0
  92. package/lib/module/glass/index.js.map +1 -1
  93. package/lib/module/index.js +2 -1
  94. package/lib/module/index.js.map +1 -1
  95. package/lib/module/index.web.js +2 -1
  96. package/lib/module/index.web.js.map +1 -1
  97. package/lib/module/label/Label.js +4 -1
  98. package/lib/module/label/Label.js.map +1 -1
  99. package/lib/module/layout/bottom-edge.js +2 -41
  100. package/lib/module/layout/bottom-edge.js.map +1 -1
  101. package/lib/module/layout/edge-store.js +58 -0
  102. package/lib/module/layout/edge-store.js.map +1 -0
  103. package/lib/module/layout/index.js +8 -3
  104. package/lib/module/layout/index.js.map +1 -1
  105. package/lib/module/layout/scroll-offset.js +77 -0
  106. package/lib/module/layout/scroll-offset.js.map +1 -0
  107. package/lib/module/layout/top-edge.js +102 -0
  108. package/lib/module/layout/top-edge.js.map +1 -0
  109. package/lib/module/page-header/EdgeScrim.js +132 -0
  110. package/lib/module/page-header/EdgeScrim.js.map +1 -0
  111. package/lib/module/page-header/PageHeader.js +233 -58
  112. package/lib/module/page-header/PageHeader.js.map +1 -1
  113. package/lib/module/provider/BloomProvider.js +5 -2
  114. package/lib/module/provider/BloomProvider.js.map +1 -1
  115. package/lib/module/social-button/OxyMark.js +1 -1
  116. package/lib/module/social-button/OxyMark.js.map +1 -1
  117. package/lib/module/social-button/SocialButton.js +1 -1
  118. package/lib/module/social-button/SocialButton.js.map +1 -1
  119. package/lib/module/styles/svg-id.js +26 -0
  120. package/lib/module/styles/svg-id.js.map +1 -0
  121. package/lib/module/text-field/TextField.js +39 -6
  122. package/lib/module/text-field/TextField.js.map +1 -1
  123. package/lib/module/theme/glass-colors.js +79 -0
  124. package/lib/module/theme/glass-colors.js.map +1 -1
  125. package/lib/typescript/commonjs/button/Button.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/button-group/ButtonGroup.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/button-group/types.d.ts +61 -5
  128. package/lib/typescript/commonjs/button-group/types.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/control-surface/ControlSurface.d.ts +4 -0
  130. package/lib/typescript/commonjs/control-surface/ControlSurface.d.ts.map +1 -0
  131. package/lib/typescript/commonjs/control-surface/context.d.ts +21 -0
  132. package/lib/typescript/commonjs/control-surface/context.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/control-surface/index.d.ts +4 -0
  134. package/lib/typescript/commonjs/control-surface/index.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/control-surface/types.d.ts +37 -0
  136. package/lib/typescript/commonjs/control-surface/types.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/field/Field.d.ts +1 -1
  138. package/lib/typescript/commonjs/field/Field.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/field/context.d.ts +55 -0
  140. package/lib/typescript/commonjs/field/context.d.ts.map +1 -0
  141. package/lib/typescript/commonjs/field/index.d.ts +2 -0
  142. package/lib/typescript/commonjs/field/index.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/field/types.d.ts +22 -3
  144. package/lib/typescript/commonjs/field/types.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/floating/TriggerSlot.d.ts.map +1 -1
  146. package/lib/typescript/commonjs/glass/GlassIsland.d.ts +4 -0
  147. package/lib/typescript/commonjs/glass/GlassIsland.d.ts.map +1 -0
  148. package/lib/typescript/commonjs/glass/GlassSurface.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/glass/index.d.ts +2 -1
  150. package/lib/typescript/commonjs/glass/index.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/glass/types.d.ts +43 -0
  152. package/lib/typescript/commonjs/glass/types.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/index.d.ts +2 -1
  154. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/index.web.d.ts +2 -1
  156. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/label/Label.d.ts.map +1 -1
  158. package/lib/typescript/commonjs/label/types.d.ts +7 -1
  159. package/lib/typescript/commonjs/label/types.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/layout/bottom-edge.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/layout/edge-store.d.ts +31 -0
  162. package/lib/typescript/commonjs/layout/edge-store.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/layout/index.d.ts +8 -3
  164. package/lib/typescript/commonjs/layout/index.d.ts.map +1 -1
  165. package/lib/typescript/commonjs/layout/scroll-offset.d.ts +16 -0
  166. package/lib/typescript/commonjs/layout/scroll-offset.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/layout/top-edge.d.ts +77 -0
  168. package/lib/typescript/commonjs/layout/top-edge.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/page-header/EdgeScrim.d.ts +95 -0
  170. package/lib/typescript/commonjs/page-header/EdgeScrim.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/page-header/PageHeader.d.ts +1 -1
  172. package/lib/typescript/commonjs/page-header/PageHeader.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/page-header/index.d.ts +1 -1
  174. package/lib/typescript/commonjs/page-header/index.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/page-header/types.d.ts +97 -10
  176. package/lib/typescript/commonjs/page-header/types.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/provider/BloomProvider.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/styles/svg-id.d.ts +20 -0
  179. package/lib/typescript/commonjs/styles/svg-id.d.ts.map +1 -0
  180. package/lib/typescript/commonjs/text-field/TextField.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/theme/glass-colors.d.ts +67 -0
  182. package/lib/typescript/commonjs/theme/glass-colors.d.ts.map +1 -1
  183. package/lib/typescript/module/button/Button.d.ts.map +1 -1
  184. package/lib/typescript/module/button-group/ButtonGroup.d.ts.map +1 -1
  185. package/lib/typescript/module/button-group/types.d.ts +61 -5
  186. package/lib/typescript/module/button-group/types.d.ts.map +1 -1
  187. package/lib/typescript/module/control-surface/ControlSurface.d.ts +4 -0
  188. package/lib/typescript/module/control-surface/ControlSurface.d.ts.map +1 -0
  189. package/lib/typescript/module/control-surface/context.d.ts +21 -0
  190. package/lib/typescript/module/control-surface/context.d.ts.map +1 -0
  191. package/lib/typescript/module/control-surface/index.d.ts +4 -0
  192. package/lib/typescript/module/control-surface/index.d.ts.map +1 -0
  193. package/lib/typescript/module/control-surface/types.d.ts +37 -0
  194. package/lib/typescript/module/control-surface/types.d.ts.map +1 -0
  195. package/lib/typescript/module/field/Field.d.ts +1 -1
  196. package/lib/typescript/module/field/Field.d.ts.map +1 -1
  197. package/lib/typescript/module/field/context.d.ts +55 -0
  198. package/lib/typescript/module/field/context.d.ts.map +1 -0
  199. package/lib/typescript/module/field/index.d.ts +2 -0
  200. package/lib/typescript/module/field/index.d.ts.map +1 -1
  201. package/lib/typescript/module/field/types.d.ts +22 -3
  202. package/lib/typescript/module/field/types.d.ts.map +1 -1
  203. package/lib/typescript/module/floating/TriggerSlot.d.ts.map +1 -1
  204. package/lib/typescript/module/glass/GlassIsland.d.ts +4 -0
  205. package/lib/typescript/module/glass/GlassIsland.d.ts.map +1 -0
  206. package/lib/typescript/module/glass/GlassSurface.d.ts.map +1 -1
  207. package/lib/typescript/module/glass/index.d.ts +2 -1
  208. package/lib/typescript/module/glass/index.d.ts.map +1 -1
  209. package/lib/typescript/module/glass/types.d.ts +43 -0
  210. package/lib/typescript/module/glass/types.d.ts.map +1 -1
  211. package/lib/typescript/module/index.d.ts +2 -1
  212. package/lib/typescript/module/index.d.ts.map +1 -1
  213. package/lib/typescript/module/index.web.d.ts +2 -1
  214. package/lib/typescript/module/index.web.d.ts.map +1 -1
  215. package/lib/typescript/module/label/Label.d.ts.map +1 -1
  216. package/lib/typescript/module/label/types.d.ts +7 -1
  217. package/lib/typescript/module/label/types.d.ts.map +1 -1
  218. package/lib/typescript/module/layout/bottom-edge.d.ts.map +1 -1
  219. package/lib/typescript/module/layout/edge-store.d.ts +31 -0
  220. package/lib/typescript/module/layout/edge-store.d.ts.map +1 -0
  221. package/lib/typescript/module/layout/index.d.ts +8 -3
  222. package/lib/typescript/module/layout/index.d.ts.map +1 -1
  223. package/lib/typescript/module/layout/scroll-offset.d.ts +16 -0
  224. package/lib/typescript/module/layout/scroll-offset.d.ts.map +1 -0
  225. package/lib/typescript/module/layout/top-edge.d.ts +77 -0
  226. package/lib/typescript/module/layout/top-edge.d.ts.map +1 -0
  227. package/lib/typescript/module/page-header/EdgeScrim.d.ts +95 -0
  228. package/lib/typescript/module/page-header/EdgeScrim.d.ts.map +1 -0
  229. package/lib/typescript/module/page-header/PageHeader.d.ts +1 -1
  230. package/lib/typescript/module/page-header/PageHeader.d.ts.map +1 -1
  231. package/lib/typescript/module/page-header/index.d.ts +1 -1
  232. package/lib/typescript/module/page-header/index.d.ts.map +1 -1
  233. package/lib/typescript/module/page-header/types.d.ts +97 -10
  234. package/lib/typescript/module/page-header/types.d.ts.map +1 -1
  235. package/lib/typescript/module/provider/BloomProvider.d.ts.map +1 -1
  236. package/lib/typescript/module/styles/svg-id.d.ts +20 -0
  237. package/lib/typescript/module/styles/svg-id.d.ts.map +1 -0
  238. package/lib/typescript/module/text-field/TextField.d.ts.map +1 -1
  239. package/lib/typescript/module/theme/glass-colors.d.ts +67 -0
  240. package/lib/typescript/module/theme/glass-colors.d.ts.map +1 -1
  241. package/package.json +15 -1
  242. package/src/button/Button.tsx +10 -1
  243. package/src/button-group/ButtonGroup.tsx +146 -19
  244. package/src/button-group/types.ts +68 -5
  245. package/src/control-surface/ControlSurface.tsx +41 -0
  246. package/src/control-surface/context.ts +81 -0
  247. package/src/control-surface/index.ts +4 -0
  248. package/src/control-surface/types.ts +40 -0
  249. package/src/field/Field.tsx +84 -27
  250. package/src/field/context.ts +110 -0
  251. package/src/field/index.ts +3 -0
  252. package/src/field/types.ts +22 -3
  253. package/src/floating/TriggerSlot.tsx +35 -1
  254. package/src/glass/GlassIsland.tsx +109 -0
  255. package/src/glass/GlassSurface.tsx +26 -2
  256. package/src/glass/index.ts +3 -0
  257. package/src/glass/types.ts +45 -0
  258. package/src/index.ts +6 -0
  259. package/src/index.web.ts +6 -0
  260. package/src/label/Label.tsx +3 -1
  261. package/src/label/types.ts +7 -1
  262. package/src/layout/bottom-edge.tsx +3 -56
  263. package/src/layout/edge-store.ts +69 -0
  264. package/src/layout/index.ts +8 -3
  265. package/src/layout/scroll-offset.ts +76 -0
  266. package/src/layout/top-edge.tsx +109 -0
  267. package/src/page-header/EdgeScrim.tsx +118 -0
  268. package/src/page-header/PageHeader.tsx +253 -61
  269. package/src/page-header/index.ts +9 -1
  270. package/src/page-header/types.ts +103 -10
  271. package/src/provider/BloomProvider.tsx +12 -1
  272. package/src/social-button/OxyMark.tsx +1 -1
  273. package/src/social-button/SocialButton.tsx +1 -1
  274. package/src/styles/svg-id.ts +23 -0
  275. package/src/text-field/TextField.tsx +44 -5
  276. package/src/theme/glass-colors.ts +80 -0
  277. package/lib/commonjs/social-button/use-svg-id.js +0 -16
  278. package/lib/commonjs/social-button/use-svg-id.js.map +0 -1
  279. package/lib/module/social-button/use-svg-id.js +0 -13
  280. package/lib/module/social-button/use-svg-id.js.map +0 -1
  281. package/lib/typescript/commonjs/social-button/use-svg-id.d.ts +0 -7
  282. package/lib/typescript/commonjs/social-button/use-svg-id.d.ts.map +0 -1
  283. package/lib/typescript/module/social-button/use-svg-id.d.ts +0 -7
  284. package/lib/typescript/module/social-button/use-svg-id.d.ts.map +0 -1
  285. package/src/social-button/use-svg-id.ts +0 -10
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_Typography","_useInteractionState","_interactiveWebCss","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","GEOMETRY","medium","height","paddingHorizontal","iconSize","small","resolveGroupPalette","theme","accent","neutral","resolveButtonRamps","isDark","groupBorder","mixColor","divider","background","hover","active","disabledBackground","foreground","colors","text","disabledForeground","ring","card","STYLE_ID","SELECTOR","BUTTON_GROUP_CSS","interactiveWebCss","selector","varPrefix","base","transition","BUTTON_TRANSITION_MS","declarations","outlineOffset","extraRules","NOT_DISABLED","IS_WEB","Platform","OS","GroupContext","createContext","ButtonGroupComponent","size","children","accessibilityLabel","style","testID","useTheme","useInteractiveWebCss","palette","useMemo","context","items","Children","toArray","filter","isValidElement","jsx","Provider","value","View","role","flexDirection","alignItems","alignSelf","borderWidth","borderColor","borderRadius","BUTTON_RADIUS","backgroundColor","boxShadow","BUTTON_SHADOW","overflow","map","item","index","jsxs","Fragment","width","key","ButtonGroupItemComponent","onPress","sizeProp","selected","disabled","iconOnly","leadingIcon","LeadingIcon","trailingIcon","TrailingIcon","group","useContext","geometry","state","hovered","onIn","onHoverIn","onOut","onHoverOut","useInteractionState","pressed","onPressIn","onPressOut","containerStyle","minWidth","undefined","justifyContent","gap","labelStyle","color","Pressable","dataSet","bloomButtonGroupItem","accessibilityRole","accessibilityState","fill","Text","variant","numberOfLines","ButtonGroup","exports","memo","displayName","ButtonGroupItem"],"sourceRoot":"../../../src","sources":["button-group/ButtonGroup.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_index","_index2","_useTheme","_Typography","_useInteractionState","_surfaceLevels","_interactiveWebCss","_colorUtils","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","GEOMETRY","medium","height","paddingHorizontal","iconSize","small","resolveGroupPalette","theme","accent","neutral","resolveButtonRamps","isDark","groupBorder","mixColor","divider","background","hover","active","disabledBackground","foreground","colors","text","disabledForeground","ring","card","resolveGlassItemPalette","level","resolveSurfaceLevel","ink","wash","withAlpha","textGraphical","STYLE_ID","SELECTOR","BUTTON_GROUP_CSS","interactiveWebCss","selector","varPrefix","base","transition","BUTTON_TRANSITION_MS","declarations","outlineOffset","extraRules","NOT_DISABLED","IS_WEB","Platform","OS","GroupContext","createContext","ButtonGroupComponent","variant","size","sizeProp","dividers","children","accessibilityLabel","style","testID","useTheme","useInteractiveWebCss","material","useInheritedControl","palette","useMemo","context","items","Children","toArray","filter","isValidElement","showDividers","row","map","item","index","jsxs","Fragment","jsx","View","width","backgroundColor","key","Provider","value","GlassIsland","role","flexDirection","alignItems","alignSelf","borderWidth","borderColor","borderRadius","BUTTON_RADIUS","boxShadow","BUTTON_SHADOW","overflow","ButtonGroupItemComponent","onPress","onLongPress","selected","disabled","iconOnly","leadingIcon","LeadingIcon","trailingIcon","TrailingIcon","accessibilityRole","hitSlop","ariaExpanded","ariaHasPopup","group","useContext","inheritedMaterial","undefined","inheritedDensity","geometry","state","hovered","onIn","onHoverIn","onOut","onHoverOut","useInteractionState","pressed","onPressIn","onPressOut","containerStyle","minWidth","justifyContent","gap","labelStyle","color","Pressable","dataSet","bloomButtonGroupItem","accessibilityState","expanded","fill","Text","numberOfLines","ButtonGroup","exports","memo","displayName","ButtonGroupItem"],"sourceRoot":"../../../src","sources":["button-group/ButtonGroup.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ControlSurface = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _context = require("./context.js");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
+ /**
12
+ * Declare the presentation the controls inside should default to.
13
+ *
14
+ * Renders nothing of its own — no view, no layout node — so it can be dropped
15
+ * anywhere without moving anything. Bloom's own containers (`ButtonGroup`'s
16
+ * glass variant, `PageHeader`'s islands) mount it for you; this is the explicit
17
+ * entry point for an app that wants the same effect around its own controls.
18
+ *
19
+ * ```tsx
20
+ * <ControlSurface material="glass">
21
+ * <ButtonGroup accessibilityLabel="Playback">…</ButtonGroup>
22
+ * </ControlSurface>
23
+ * ```
24
+ *
25
+ * A field left `undefined` INHERITS rather than resetting, so a nested
26
+ * `<ControlSurface density="small">` inside a glass island stays glass. The
27
+ * full precedence rule is in `control-surface/context.ts`.
28
+ */
29
+ const ControlSurfaceComponent = ({
30
+ material,
31
+ density,
32
+ children
33
+ }) => {
34
+ const inherited = (0, _context.useControlSurface)();
35
+ const value = (0, _react.useMemo)(() => ({
36
+ material: material ?? inherited?.material ?? 'solid',
37
+ density: density ?? inherited?.density ?? 'medium'
38
+ }), [material, density, inherited?.material, inherited?.density]);
39
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.ControlSurfaceProvider, {
40
+ value: value,
41
+ children: children
42
+ });
43
+ };
44
+ const ControlSurface = exports.ControlSurface = /*#__PURE__*/(0, _react.memo)(ControlSurfaceComponent);
45
+ ControlSurface.displayName = 'ControlSurface';
46
+ //# sourceMappingURL=ControlSurface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ControlSurfaceComponent","material","density","children","inherited","useControlSurface","value","useMemo","jsx","ControlSurfaceProvider","ControlSurface","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["control-surface/ControlSurface.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAAsE,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAGtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMkB,uBAAsD,GAAGA,CAAC;EAC9DC,QAAQ;EACRC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,MAAMC,SAAS,GAAG,IAAAC,0BAAiB,EAAC,CAAC;EACrC,MAAMC,KAAK,GAAG,IAAAC,cAAO,EACnB,OAAO;IACLN,QAAQ,EAAEA,QAAQ,IAAIG,SAAS,EAAEH,QAAQ,IAAI,OAAO;IACpDC,OAAO,EAAEA,OAAO,IAAIE,SAAS,EAAEF,OAAO,IAAI;EAC5C,CAAC,CAAC,EACF,CAACD,QAAQ,EAAEC,OAAO,EAAEE,SAAS,EAAEH,QAAQ,EAAEG,SAAS,EAAEF,OAAO,CAC7D,CAAC;EACD,oBAAO,IAAAtB,WAAA,CAAA4B,GAAA,EAAC7B,QAAA,CAAA8B,sBAAsB;IAACH,KAAK,EAAEA,KAAM;IAAAH,QAAA,EAAEA;EAAQ,CAAyB,CAAC;AAClF,CAAC;AAEM,MAAMO,cAAc,GAAAC,OAAA,CAAAD,cAAA,gBAAG,IAAAE,WAAI,EAACZ,uBAAuB,CAAC;AAC3DU,cAAc,CAACG,WAAW,GAAG,gBAAgB","ignoreList":[]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ControlSurfaceProvider = void 0;
7
+ exports.useControlSurface = useControlSurface;
8
+ exports.useInheritedControl = useInheritedControl;
9
+ var _react = require("react");
10
+ /**
11
+ * The inherited CONTROL PRESENTATION contract — the third of Bloom's visual
12
+ * contexts, beside the theme (`theme/use-theme`) and the surface ladder
13
+ * (`styles/surface-levels`).
14
+ *
15
+ * ## What it is for
16
+ *
17
+ * A container that owns a material has to be able to say so once, rather than
18
+ * have every control inside it repeat the material as a prop. A page header's
19
+ * action island owns its glass; the `ButtonGroup` inside it should not need
20
+ * `variant="glass"` written on it, and the items inside THAT should not need it
21
+ * either. Written as props it is three places to keep in step, and the app is
22
+ * the one that pays when they drift.
23
+ *
24
+ * ## Precedence, in one rule
25
+ *
26
+ * an explicit prop > the nearest container > the component's default
27
+ *
28
+ * {@link useInheritedControl} is that rule, and it is a function rather than a
29
+ * convention so the three consumers cannot each interpret it slightly
30
+ * differently. `undefined` is the only value that defers: passing
31
+ * `material="solid"` inside a glass island paints a solid control, which is a
32
+ * decision the caller is allowed to make.
33
+ *
34
+ * ## What deliberately does NOT travel through it
35
+ *
36
+ * Only VISUAL CONFIGURATION. A constraint — `disabled`, a modal's inertness,
37
+ * the user's reduce-transparency preference — is not a default, and the rule
38
+ * above is exactly wrong for one: a descendant must not be able to re-enable an
39
+ * action its group disabled by passing a prop. Constraints keep their own
40
+ * channels (a group's `disabled` is applied by the group when it renders its
41
+ * items; accessibility preferences are read from the OS at the point of use).
42
+ *
43
+ * Nor does STATE. `checked`, `selected`, a field's value and any business datum
44
+ * are owned by the component that holds them; a visual context that also
45
+ * carried state would make every container a place state could leak from.
46
+ *
47
+ * ## Scope
48
+ *
49
+ * One context, two fields, both of which change rarely (a container sets them
50
+ * once at mount). Scroll offsets, focus, form state and the overlay stack each
51
+ * have their own context for the opposite reason — they change often, and a
52
+ * consumer of one must not re-render for a change in another.
53
+ */
54
+
55
+ const ControlSurfaceContext = /*#__PURE__*/(0, _react.createContext)(null);
56
+ ControlSurfaceContext.displayName = 'BloomControlSurfaceContext';
57
+
58
+ /** @internal The provider `ControlSurface` renders. */
59
+ const ControlSurfaceProvider = exports.ControlSurfaceProvider = ControlSurfaceContext.Provider;
60
+
61
+ /**
62
+ * The nearest container's presentation, or `null` when there is none.
63
+ *
64
+ * `null` rather than a default object on purpose: a control's own default is
65
+ * the control's to choose (`ButtonGroup` defaults to `solid`, a media overlay's
66
+ * toolbar could default to `glass`), and a context that invented one here would
67
+ * take that choice away by looking like an answer.
68
+ */
69
+ function useControlSurface() {
70
+ return (0, _react.useContext)(ControlSurfaceContext);
71
+ }
72
+
73
+ /**
74
+ * Resolve one field by the precedence rule: `explicit` → container → `fallback`.
75
+ *
76
+ * ```ts
77
+ * const material = useInheritedControl('material', variant, 'solid');
78
+ * ```
79
+ */
80
+ function useInheritedControl(key, explicit, fallback) {
81
+ const inherited = (0, _react.useContext)(ControlSurfaceContext);
82
+ return explicit ?? inherited?.[key] ?? fallback;
83
+ }
84
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","ControlSurfaceContext","createContext","displayName","ControlSurfaceProvider","exports","Provider","useControlSurface","useContext","useInheritedControl","key","explicit","fallback","inherited"],"sourceRoot":"../../../src","sources":["control-surface/context.ts"],"mappings":";;;;;;;;AA4CA,IAAAA,MAAA,GAAAC,OAAA;AA5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,MAAMC,qBAAqB,gBAAG,IAAAC,oBAAa,EAA6B,IAAI,CAAC;AAC7ED,qBAAqB,CAACE,WAAW,GAAG,4BAA4B;;AAEhE;AACO,MAAMC,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAGH,qBAAqB,CAACK,QAAQ;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAAA,EAA+B;EAC9D,OAAO,IAAAC,iBAAU,EAACP,qBAAqB,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASQ,mBAAmBA,CACjCC,GAAM,EACNC,QAA4C,EAC5CC,QAAgC,EACR;EACxB,MAAMC,SAAS,GAAG,IAAAL,iBAAU,EAACP,qBAAqB,CAAC;EACnD,OAAOU,QAAQ,IAAIE,SAAS,GAAGH,GAAG,CAAC,IAAIE,QAAQ;AACjD","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ControlSurface", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _ControlSurface.ControlSurface;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "useControlSurface", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _context.useControlSurface;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useInheritedControl", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _context.useInheritedControl;
22
+ }
23
+ });
24
+ var _ControlSurface = require("./ControlSurface.js");
25
+ var _context = require("./context.js");
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_ControlSurface","require","_context"],"sourceRoot":"../../../src","sources":["control-surface/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["control-surface/types.ts"],"mappings":"","ignoreList":[]}
@@ -10,6 +10,7 @@ var _index = require("../typography/index.js");
10
10
  var _index2 = require("../label/index.js");
11
11
  var _index3 = require("../styles/index.js");
12
12
  var _shared = require("../text-field/shared.js");
13
+ var _context = require("./context.js");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
15
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
16
  /**
@@ -20,6 +21,20 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
20
21
  * Bloom's `Label`. Unlike `TextField` — which bakes its label/error into the
21
22
  * input chrome — `Field` wraps any arbitrary control (a `Switch`, a
22
23
  * `SegmentedControl`, a custom picker, etc.).
24
+ *
25
+ * ── IT ASSOCIATES, IT DOES NOT ONLY STACK ───────────────────────────────────
26
+ *
27
+ * The three pieces are wired to the control through `field/context.ts`: the
28
+ * control's id, `aria-describedby` for whichever of description/error is
29
+ * showing, the invalid state, the required state and the disabled state. A
30
+ * control opts in by reading `useFieldControl()`; one that does not renders
31
+ * exactly as before. Ids are generated from `useId` when the caller gives no
32
+ * `nativeID`, so they survive SSR and hydration.
33
+ *
34
+ * `multiple` is the several-controls case — a radio set, a date's three boxes.
35
+ * The field becomes a labelled `group` and stops handing out a control id,
36
+ * because one id on three inputs is invalid and one error described by three
37
+ * inputs is read three times.
23
38
  */
24
39
  /** `HintText`: 4px under the control (`gap-1`) plus its own 1px `pt-px`. */
25
40
  const hintStyle = {
@@ -33,38 +48,68 @@ const FieldComponent = function Field({
33
48
  error,
34
49
  required = false,
35
50
  disabled = false,
51
+ multiple = false,
36
52
  nativeID,
37
53
  style,
38
54
  testID
39
55
  }) {
40
56
  const palette = (0, _shared.useTextFieldPalette)();
41
57
  const hasError = typeof error === 'string' && error.length > 0;
42
- const descriptionID = nativeID ? `${nativeID}-description` : undefined;
43
- const errorID = nativeID ? `${nativeID}-error` : undefined;
44
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
45
- style: [_index3.atoms.w_full, style],
46
- testID: testID,
47
- children: [label != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.Label, {
48
- htmlFor: nativeID,
49
- required: required,
50
- disabled: disabled,
51
- children: label
52
- }) : null, children, hasError ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
53
- variant: "caption-1-medium",
54
- nativeID: errorID,
55
- accessibilityRole: "alert",
56
- style: [hintStyle, {
57
- color: palette.error
58
- }],
59
- children: error
60
- }) : description != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
61
- variant: "caption-1-medium",
62
- nativeID: descriptionID,
63
- style: [hintStyle, {
64
- color: disabled ? palette.placeholder : palette.hint
65
- }],
66
- children: description
67
- }) : null]
58
+ // `useId` is the seed only when the caller gave no id, so an explicit
59
+ // `nativeID` still owns every derived id and a consumer that wired its own
60
+ // `aria-describedby` keeps working.
61
+ const generated = (0, _react.useId)().replace(/[^a-zA-Z0-9]/g, '');
62
+ const base = nativeID ?? `bloom-field-${generated}`;
63
+ const labelID = `${base}-label`;
64
+ const descriptionID = `${base}-description`;
65
+ const errorID = `${base}-error`;
66
+ const hasDescription = !hasError && description != null;
67
+ const field = (0, _react.useMemo)(() => ({
68
+ controlId: multiple ? undefined : base,
69
+ labelId: label != null ? labelID : undefined,
70
+ // In a `multiple` field the GROUP is described, not each control: an
71
+ // error pointed at by three inputs is announced three times.
72
+ describedBy: multiple ? undefined : hasError ? errorID : hasDescription ? descriptionID : undefined,
73
+ labelText: typeof label === 'string' ? label : undefined,
74
+ invalid: hasError,
75
+ required,
76
+ disabled
77
+ }), [multiple, base, label, labelID, hasError, errorID, hasDescription, descriptionID, required, disabled]);
78
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.FieldControlProvider, {
79
+ value: field,
80
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
81
+ style: [_index3.atoms.w_full, style],
82
+ testID: testID
83
+ // A group only when it holds several controls. A `group` around one
84
+ // control is a wrapper a screen reader has to step into for nothing,
85
+ // and it competes with the control's own name.
86
+ ,
87
+ role: multiple ? 'group' : undefined,
88
+ "aria-labelledby": multiple && label != null ? labelID : undefined,
89
+ "aria-describedby": multiple ? hasError ? errorID : hasDescription ? descriptionID : undefined : undefined,
90
+ children: [label != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.Label, {
91
+ nativeID: labelID,
92
+ htmlFor: multiple ? null : base,
93
+ required: required,
94
+ disabled: disabled,
95
+ children: label
96
+ }) : null, children, hasError ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
97
+ variant: "caption-1-medium",
98
+ nativeID: errorID,
99
+ accessibilityRole: "alert",
100
+ style: [hintStyle, {
101
+ color: palette.error
102
+ }],
103
+ children: error
104
+ }) : description != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
105
+ variant: "caption-1-medium",
106
+ nativeID: descriptionID,
107
+ style: [hintStyle, {
108
+ color: disabled ? palette.placeholder : palette.hint
109
+ }],
110
+ children: description
111
+ }) : null]
112
+ })
68
113
  });
69
114
  };
70
115
  const Field = exports.Field = /*#__PURE__*/(0, _react.memo)(FieldComponent);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_index","_index2","_index3","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","hintStyle","marginTop","TEXT_FIELD_STACK_GAP","paddingTop","FieldComponent","Field","children","label","description","error","required","disabled","nativeID","style","testID","palette","useTextFieldPalette","hasError","length","descriptionID","undefined","errorID","jsxs","View","a","w_full","jsx","Label","htmlFor","Text","variant","accessibilityRole","color","placeholder","hint","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["field/Field.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_index","_index2","_index3","_shared","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","hintStyle","marginTop","TEXT_FIELD_STACK_GAP","paddingTop","FieldComponent","Field","children","label","description","error","required","disabled","multiple","nativeID","style","testID","palette","useTextFieldPalette","hasError","length","generated","useId","replace","base","labelID","descriptionID","errorID","hasDescription","field","useMemo","controlId","undefined","labelId","describedBy","labelText","invalid","jsx","FieldControlProvider","value","jsxs","View","a","w_full","role","Label","htmlFor","Text","variant","accessibilityRole","color","placeholder","hint","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["field/Field.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FieldControlProvider = void 0;
7
+ exports.useFieldControl = useFieldControl;
8
+ var _react = require("react");
9
+ /**
10
+ * FIELD MEMBERSHIP — what a `Field` tells the control inside it, so the label,
11
+ * the description and the error are wired to it rather than merely stacked
12
+ * above and below it.
13
+ *
14
+ * ## What was missing
15
+ *
16
+ * `Field` drew the three pieces and rendered `children` untouched. Every
17
+ * association — the id the label points at, the `aria-describedby` that makes a
18
+ * screen reader read the error, the invalid state, the disabled state — was the
19
+ * app's to wire by hand, on every field, and the failure when it was not wired
20
+ * is silent: the field LOOKS associated, because the parts are in the right
21
+ * places and the error is red.
22
+ *
23
+ * ## The contract
24
+ *
25
+ * `Field` publishes ids and state; a control that can accept them calls
26
+ * {@link useFieldControl} and applies them. Opt-IN, not magic: an arbitrary
27
+ * child cannot be given behaviour by being wrapped, and a container that
28
+ * inspected its children's types to decide what to do with them would be the
29
+ * thing `docs/composition.mdx` argues against. A control that does not read the
30
+ * context renders exactly as it did before.
31
+ *
32
+ * ## The ids are stable across SSR
33
+ *
34
+ * From `useId`, seeded by the caller's `nativeID` when it gave one. A
35
+ * module-scope counter would number the server's render and the client's
36
+ * hydration differently, so the `for` attribute React sent and the `id` it
37
+ * re-rendered would stop matching — which is invisible until someone clicks a
38
+ * label.
39
+ *
40
+ * ## One control or several
41
+ *
42
+ * A field with ONE control gives it the field's id, and the error is described
43
+ * BY that control. A field with several (a radio set, a date's three inputs)
44
+ * must not: three inputs sharing one id is invalid HTML, and an error attached
45
+ * to each of them is read three times. `multiple` switches the field to a
46
+ * labelled `group` and publishes no control id at all — the group carries the
47
+ * name and the description, and each control keeps its own.
48
+ *
49
+ * ## What does NOT travel here
50
+ *
51
+ * The VALUE, the validation and the submission. Bloom owns presentation and
52
+ * association; an app's form library owns the data. A context that also carried
53
+ * the value would make `Field` a form framework, which is the one thing this is
54
+ * not.
55
+ */
56
+
57
+ const FieldControlContext = /*#__PURE__*/(0, _react.createContext)(null);
58
+ FieldControlContext.displayName = 'BloomFieldControlContext';
59
+
60
+ /** @internal The provider `Field` renders. */
61
+ const FieldControlProvider = exports.FieldControlProvider = FieldControlContext.Provider;
62
+
63
+ /**
64
+ * The enclosing `Field`'s association, or `null` outside one.
65
+ *
66
+ * ```tsx
67
+ * const field = useFieldControl();
68
+ * <TextInput
69
+ * nativeID={field?.controlId ?? nativeID}
70
+ * aria-describedby={field?.describedBy}
71
+ * aria-invalid={field?.invalid || isInvalid || undefined}
72
+ * accessibilityLabel={field?.labelText ?? label}
73
+ * editable={!(field?.disabled || disabled)}
74
+ * />
75
+ * ```
76
+ */
77
+ function useFieldControl() {
78
+ return (0, _react.useContext)(FieldControlContext);
79
+ }
80
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","FieldControlContext","createContext","displayName","FieldControlProvider","exports","Provider","useFieldControl","useContext"],"sourceRoot":"../../../src","sources":["field/context.ts"],"mappings":";;;;;;;AA+CA,IAAAA,MAAA,GAAAC,OAAA;AA/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyCA,MAAMC,mBAAmB,gBAAG,IAAAC,oBAAa,EAA2B,IAAI,CAAC;AACzED,mBAAmB,CAACE,WAAW,GAAG,0BAA0B;;AAE5D;AACO,MAAMC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAGH,mBAAmB,CAACK,QAAQ;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAAA,EAA6B;EAC1D,OAAO,IAAAC,iBAAU,EAACP,mBAAmB,CAAC;AACxC","ignoreList":[]}
@@ -9,5 +9,12 @@ Object.defineProperty(exports, "Field", {
9
9
  return _Field.Field;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "useFieldControl", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _context.useFieldControl;
16
+ }
17
+ });
12
18
  var _Field = require("./Field.js");
19
+ var _context = require("./context.js");
13
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_Field","require"],"sourceRoot":"../../../src","sources":["field/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_Field","require","_context"],"sourceRoot":"../../../src","sources":["field/index.ts"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]}
@@ -41,12 +41,25 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
41
41
  * several children, which is the right failure: `asChild` has no meaning for a
42
42
  * fragment, and silently picking the first child is how a trigger ends up
43
43
  * un-pressable with nothing logged.
44
+ *
45
+ * ── A FRAGMENT PASSES `isValidElement` AND DROPS EVERY PROP ─────────────────
46
+ *
47
+ * `Children.only` accepts `<>{child}</>` — a fragment IS one child, and it IS a
48
+ * valid element — and `cloneElement` on it succeeds, returning a fragment
49
+ * carrying an `onPress` and an `aria-expanded` that React then discards,
50
+ * because a fragment renders no host node to put them on. Nothing throws. The
51
+ * trigger is simply dead, and the caller's most likely next move is to wrap it
52
+ * in another fragment. So it is rejected here, by name, with the fix in the
53
+ * message.
44
54
  */
45
55
  function cloneTrigger(children, handle) {
46
56
  const child = _react.Children.only(children);
47
57
  if (! /*#__PURE__*/(0, _react.isValidElement)(child)) {
48
58
  throw new Error('A trigger with `asChild` needs a single React element child. Drop `asChild` to let Bloom render the pressable.');
49
59
  }
60
+ if (child.type === _react.Fragment) {
61
+ throw new Error('A trigger with `asChild` cannot clone a fragment — it renders no element, so the press handler and the a11y state would be dropped silently. Pass the control itself as the single child.');
62
+ }
50
63
  const childProps = child.props;
51
64
  // A disabled trigger must not OPEN, and the child's own `disabled` is where a
52
65
  // caller most naturally writes that — a disabled `Pressable` child rather than
@@ -59,12 +72,31 @@ function cloneTrigger(children, handle) {
59
72
  ...handle,
60
73
  // Compose rather than overwrite: the child's own handler runs first, then
61
74
  // ours opens the surface.
75
+ //
76
+ // ── AND THE CHILD'S HANDLER CAN CANCEL THE OPEN ─────────────────────────
77
+ //
78
+ // `event.preventDefault()` in the child's own handler stops the surface
79
+ // from opening. Composition needs an answer to "what if the first handler
80
+ // decides this press should not do the second thing" — a trigger that has
81
+ // just discovered the form is dirty, or that the row it belongs to was
82
+ // removed — and without one the only way to express it is to stop using
83
+ // `asChild` and rebuild the control.
84
+ //
85
+ // It is `preventDefault` rather than a Bloom-specific return value because
86
+ // the event already carries it on BOTH platforms and both mean the same
87
+ // thing by it: on web `onPress` is handed React's synthetic `click` event,
88
+ // and on native the responder event is a React synthetic event too. One
89
+ // consequence worth knowing on web: the same call also suppresses the
90
+ // browser's own default for that click, so cancelling the open on an
91
+ // anchor child cancels its navigation as well.
62
92
  onPress: isDisabled ? childProps.onPress : event => {
63
93
  childProps.onPress?.(event);
94
+ if (event?.defaultPrevented) return;
64
95
  handle.onPress(event);
65
96
  },
66
97
  onLongPress: handle.onLongPress === undefined || isDisabled ? childProps.onLongPress : event => {
67
98
  childProps.onLongPress?.(event);
99
+ if (event?.defaultPrevented) return;
68
100
  handle.onLongPress?.(event);
69
101
  },
70
102
  // A label the caller already wrote is more specific than the family's.
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useAccessibilityFocus","_mergeRefs","_styledPrimitives","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","cloneTrigger","children","handle","child","Children","only","isValidElement","Error","childProps","props","isDisabled","disabled","cloneElement","onPress","event","onLongPress","undefined","accessibilityLabel","TriggerSlot","asChild","anchorRef","className","style","testID","ownRef","useRef","useRestoreAccessibilityFocus","jsx","StyledView","ref","mergeRefs","collapsable","styles","wrap","StyledPressable","StyleSheet","create","alignSelf"],"sourceRoot":"../../../src","sources":["floating/TriggerSlot.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useAccessibilityFocus","_mergeRefs","_styledPrimitives","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","cloneTrigger","children","handle","child","Children","only","isValidElement","Error","type","Fragment","childProps","props","isDisabled","disabled","cloneElement","onPress","event","defaultPrevented","onLongPress","undefined","accessibilityLabel","TriggerSlot","asChild","anchorRef","className","style","testID","ownRef","useRef","useRestoreAccessibilityFocus","jsx","StyledView","ref","mergeRefs","collapsable","styles","wrap","StyledPressable","StyleSheet","create","alignSelf"],"sourceRoot":"../../../src","sources":["floating/TriggerSlot.tsx"],"mappings":"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","ignoreList":[]}