@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.
- package/README.md +4 -4
- package/docs/button-group.mdx +46 -4
- package/docs/composition.mdx +159 -0
- package/docs/field.mdx +39 -1
- package/docs/glass.mdx +46 -0
- package/docs/layout.mdx +72 -4
- package/docs/migrating-to-3.0.mdx +169 -0
- package/docs/page-header.mdx +192 -36
- package/lib/commonjs/button/Button.js +2 -0
- package/lib/commonjs/button/Button.js.map +1 -1
- package/lib/commonjs/button-group/ButtonGroup.js +124 -19
- package/lib/commonjs/button-group/ButtonGroup.js.map +1 -1
- package/lib/commonjs/control-surface/ControlSurface.js +46 -0
- package/lib/commonjs/control-surface/ControlSurface.js.map +1 -0
- package/lib/commonjs/control-surface/context.js +84 -0
- package/lib/commonjs/control-surface/context.js.map +1 -0
- package/lib/commonjs/control-surface/index.js +26 -0
- package/lib/commonjs/control-surface/index.js.map +1 -0
- package/lib/commonjs/control-surface/types.js +6 -0
- package/lib/commonjs/control-surface/types.js.map +1 -0
- package/lib/commonjs/field/Field.js +71 -26
- package/lib/commonjs/field/Field.js.map +1 -1
- package/lib/commonjs/field/context.js +80 -0
- package/lib/commonjs/field/context.js.map +1 -0
- package/lib/commonjs/field/index.js +7 -0
- package/lib/commonjs/field/index.js.map +1 -1
- package/lib/commonjs/floating/TriggerSlot.js +32 -0
- package/lib/commonjs/floating/TriggerSlot.js.map +1 -1
- package/lib/commonjs/glass/GlassIsland.js +107 -0
- package/lib/commonjs/glass/GlassIsland.js.map +1 -0
- package/lib/commonjs/glass/GlassSurface.js +4 -1
- package/lib/commonjs/glass/GlassSurface.js.map +1 -1
- package/lib/commonjs/glass/index.js +7 -0
- package/lib/commonjs/glass/index.js.map +1 -1
- package/lib/commonjs/index.js +564 -517
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +564 -517
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/label/Label.js +4 -1
- package/lib/commonjs/label/Label.js.map +1 -1
- package/lib/commonjs/layout/bottom-edge.js +3 -42
- package/lib/commonjs/layout/bottom-edge.js.map +1 -1
- package/lib/commonjs/layout/edge-store.js +65 -0
- package/lib/commonjs/layout/edge-store.js.map +1 -0
- package/lib/commonjs/layout/index.js +32 -0
- package/lib/commonjs/layout/index.js.map +1 -1
- package/lib/commonjs/layout/scroll-offset.js +83 -0
- package/lib/commonjs/layout/scroll-offset.js.map +1 -0
- package/lib/commonjs/layout/top-edge.js +109 -0
- package/lib/commonjs/layout/top-edge.js.map +1 -0
- package/lib/commonjs/page-header/EdgeScrim.js +136 -0
- package/lib/commonjs/page-header/EdgeScrim.js.map +1 -0
- package/lib/commonjs/page-header/PageHeader.js +236 -61
- package/lib/commonjs/page-header/PageHeader.js.map +1 -1
- package/lib/commonjs/provider/BloomProvider.js +5 -2
- package/lib/commonjs/provider/BloomProvider.js.map +1 -1
- package/lib/commonjs/social-button/OxyMark.js +2 -2
- package/lib/commonjs/social-button/OxyMark.js.map +1 -1
- package/lib/commonjs/social-button/SocialButton.js +2 -2
- package/lib/commonjs/social-button/SocialButton.js.map +1 -1
- package/lib/commonjs/styles/svg-id.js +29 -0
- package/lib/commonjs/styles/svg-id.js.map +1 -0
- package/lib/commonjs/text-field/TextField.js +39 -6
- package/lib/commonjs/text-field/TextField.js.map +1 -1
- package/lib/commonjs/theme/glass-colors.js +81 -1
- package/lib/commonjs/theme/glass-colors.js.map +1 -1
- package/lib/module/button/Button.js +2 -0
- package/lib/module/button/Button.js.map +1 -1
- package/lib/module/button-group/ButtonGroup.js +124 -19
- package/lib/module/button-group/ButtonGroup.js.map +1 -1
- package/lib/module/control-surface/ControlSurface.js +41 -0
- package/lib/module/control-surface/ControlSurface.js.map +1 -0
- package/lib/module/control-surface/context.js +77 -0
- package/lib/module/control-surface/context.js.map +1 -0
- package/lib/module/control-surface/index.js +5 -0
- package/lib/module/control-surface/index.js.map +1 -0
- package/lib/module/control-surface/types.js +4 -0
- package/lib/module/control-surface/types.js.map +1 -0
- package/lib/module/field/Field.js +72 -27
- package/lib/module/field/Field.js.map +1 -1
- package/lib/module/field/context.js +74 -0
- package/lib/module/field/context.js.map +1 -0
- package/lib/module/field/index.js +1 -0
- package/lib/module/field/index.js.map +1 -1
- package/lib/module/floating/TriggerSlot.js +33 -1
- package/lib/module/floating/TriggerSlot.js.map +1 -1
- package/lib/module/glass/GlassIsland.js +102 -0
- package/lib/module/glass/GlassIsland.js.map +1 -0
- package/lib/module/glass/GlassSurface.js +5 -2
- package/lib/module/glass/GlassSurface.js.map +1 -1
- package/lib/module/glass/index.js +1 -0
- package/lib/module/glass/index.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +2 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/label/Label.js +4 -1
- package/lib/module/label/Label.js.map +1 -1
- package/lib/module/layout/bottom-edge.js +2 -41
- package/lib/module/layout/bottom-edge.js.map +1 -1
- package/lib/module/layout/edge-store.js +58 -0
- package/lib/module/layout/edge-store.js.map +1 -0
- package/lib/module/layout/index.js +8 -3
- package/lib/module/layout/index.js.map +1 -1
- package/lib/module/layout/scroll-offset.js +77 -0
- package/lib/module/layout/scroll-offset.js.map +1 -0
- package/lib/module/layout/top-edge.js +102 -0
- package/lib/module/layout/top-edge.js.map +1 -0
- package/lib/module/page-header/EdgeScrim.js +132 -0
- package/lib/module/page-header/EdgeScrim.js.map +1 -0
- package/lib/module/page-header/PageHeader.js +233 -58
- package/lib/module/page-header/PageHeader.js.map +1 -1
- package/lib/module/provider/BloomProvider.js +5 -2
- package/lib/module/provider/BloomProvider.js.map +1 -1
- package/lib/module/social-button/OxyMark.js +1 -1
- package/lib/module/social-button/OxyMark.js.map +1 -1
- package/lib/module/social-button/SocialButton.js +1 -1
- package/lib/module/social-button/SocialButton.js.map +1 -1
- package/lib/module/styles/svg-id.js +26 -0
- package/lib/module/styles/svg-id.js.map +1 -0
- package/lib/module/text-field/TextField.js +39 -6
- package/lib/module/text-field/TextField.js.map +1 -1
- package/lib/module/theme/glass-colors.js +79 -0
- package/lib/module/theme/glass-colors.js.map +1 -1
- package/lib/typescript/commonjs/button/Button.d.ts.map +1 -1
- package/lib/typescript/commonjs/button-group/ButtonGroup.d.ts.map +1 -1
- package/lib/typescript/commonjs/button-group/types.d.ts +61 -5
- package/lib/typescript/commonjs/button-group/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/control-surface/ControlSurface.d.ts +4 -0
- package/lib/typescript/commonjs/control-surface/ControlSurface.d.ts.map +1 -0
- package/lib/typescript/commonjs/control-surface/context.d.ts +21 -0
- package/lib/typescript/commonjs/control-surface/context.d.ts.map +1 -0
- package/lib/typescript/commonjs/control-surface/index.d.ts +4 -0
- package/lib/typescript/commonjs/control-surface/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/control-surface/types.d.ts +37 -0
- package/lib/typescript/commonjs/control-surface/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/field/Field.d.ts +1 -1
- package/lib/typescript/commonjs/field/Field.d.ts.map +1 -1
- package/lib/typescript/commonjs/field/context.d.ts +55 -0
- package/lib/typescript/commonjs/field/context.d.ts.map +1 -0
- package/lib/typescript/commonjs/field/index.d.ts +2 -0
- package/lib/typescript/commonjs/field/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/field/types.d.ts +22 -3
- package/lib/typescript/commonjs/field/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/TriggerSlot.d.ts.map +1 -1
- package/lib/typescript/commonjs/glass/GlassIsland.d.ts +4 -0
- package/lib/typescript/commonjs/glass/GlassIsland.d.ts.map +1 -0
- package/lib/typescript/commonjs/glass/GlassSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/glass/index.d.ts +2 -1
- package/lib/typescript/commonjs/glass/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/glass/types.d.ts +43 -0
- package/lib/typescript/commonjs/glass/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +2 -1
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/label/Label.d.ts.map +1 -1
- package/lib/typescript/commonjs/label/types.d.ts +7 -1
- package/lib/typescript/commonjs/label/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/layout/bottom-edge.d.ts.map +1 -1
- package/lib/typescript/commonjs/layout/edge-store.d.ts +31 -0
- package/lib/typescript/commonjs/layout/edge-store.d.ts.map +1 -0
- package/lib/typescript/commonjs/layout/index.d.ts +8 -3
- package/lib/typescript/commonjs/layout/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/layout/scroll-offset.d.ts +16 -0
- package/lib/typescript/commonjs/layout/scroll-offset.d.ts.map +1 -0
- package/lib/typescript/commonjs/layout/top-edge.d.ts +77 -0
- package/lib/typescript/commonjs/layout/top-edge.d.ts.map +1 -0
- package/lib/typescript/commonjs/page-header/EdgeScrim.d.ts +95 -0
- package/lib/typescript/commonjs/page-header/EdgeScrim.d.ts.map +1 -0
- package/lib/typescript/commonjs/page-header/PageHeader.d.ts +1 -1
- package/lib/typescript/commonjs/page-header/PageHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/page-header/index.d.ts +1 -1
- package/lib/typescript/commonjs/page-header/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/page-header/types.d.ts +97 -10
- package/lib/typescript/commonjs/page-header/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/provider/BloomProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/styles/svg-id.d.ts +20 -0
- package/lib/typescript/commonjs/styles/svg-id.d.ts.map +1 -0
- package/lib/typescript/commonjs/text-field/TextField.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/glass-colors.d.ts +67 -0
- package/lib/typescript/commonjs/theme/glass-colors.d.ts.map +1 -1
- package/lib/typescript/module/button/Button.d.ts.map +1 -1
- package/lib/typescript/module/button-group/ButtonGroup.d.ts.map +1 -1
- package/lib/typescript/module/button-group/types.d.ts +61 -5
- package/lib/typescript/module/button-group/types.d.ts.map +1 -1
- package/lib/typescript/module/control-surface/ControlSurface.d.ts +4 -0
- package/lib/typescript/module/control-surface/ControlSurface.d.ts.map +1 -0
- package/lib/typescript/module/control-surface/context.d.ts +21 -0
- package/lib/typescript/module/control-surface/context.d.ts.map +1 -0
- package/lib/typescript/module/control-surface/index.d.ts +4 -0
- package/lib/typescript/module/control-surface/index.d.ts.map +1 -0
- package/lib/typescript/module/control-surface/types.d.ts +37 -0
- package/lib/typescript/module/control-surface/types.d.ts.map +1 -0
- package/lib/typescript/module/field/Field.d.ts +1 -1
- package/lib/typescript/module/field/Field.d.ts.map +1 -1
- package/lib/typescript/module/field/context.d.ts +55 -0
- package/lib/typescript/module/field/context.d.ts.map +1 -0
- package/lib/typescript/module/field/index.d.ts +2 -0
- package/lib/typescript/module/field/index.d.ts.map +1 -1
- package/lib/typescript/module/field/types.d.ts +22 -3
- package/lib/typescript/module/field/types.d.ts.map +1 -1
- package/lib/typescript/module/floating/TriggerSlot.d.ts.map +1 -1
- package/lib/typescript/module/glass/GlassIsland.d.ts +4 -0
- package/lib/typescript/module/glass/GlassIsland.d.ts.map +1 -0
- package/lib/typescript/module/glass/GlassSurface.d.ts.map +1 -1
- package/lib/typescript/module/glass/index.d.ts +2 -1
- package/lib/typescript/module/glass/index.d.ts.map +1 -1
- package/lib/typescript/module/glass/types.d.ts +43 -0
- package/lib/typescript/module/glass/types.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +2 -1
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/label/Label.d.ts.map +1 -1
- package/lib/typescript/module/label/types.d.ts +7 -1
- package/lib/typescript/module/label/types.d.ts.map +1 -1
- package/lib/typescript/module/layout/bottom-edge.d.ts.map +1 -1
- package/lib/typescript/module/layout/edge-store.d.ts +31 -0
- package/lib/typescript/module/layout/edge-store.d.ts.map +1 -0
- package/lib/typescript/module/layout/index.d.ts +8 -3
- package/lib/typescript/module/layout/index.d.ts.map +1 -1
- package/lib/typescript/module/layout/scroll-offset.d.ts +16 -0
- package/lib/typescript/module/layout/scroll-offset.d.ts.map +1 -0
- package/lib/typescript/module/layout/top-edge.d.ts +77 -0
- package/lib/typescript/module/layout/top-edge.d.ts.map +1 -0
- package/lib/typescript/module/page-header/EdgeScrim.d.ts +95 -0
- package/lib/typescript/module/page-header/EdgeScrim.d.ts.map +1 -0
- package/lib/typescript/module/page-header/PageHeader.d.ts +1 -1
- package/lib/typescript/module/page-header/PageHeader.d.ts.map +1 -1
- package/lib/typescript/module/page-header/index.d.ts +1 -1
- package/lib/typescript/module/page-header/index.d.ts.map +1 -1
- package/lib/typescript/module/page-header/types.d.ts +97 -10
- package/lib/typescript/module/page-header/types.d.ts.map +1 -1
- package/lib/typescript/module/provider/BloomProvider.d.ts.map +1 -1
- package/lib/typescript/module/styles/svg-id.d.ts +20 -0
- package/lib/typescript/module/styles/svg-id.d.ts.map +1 -0
- package/lib/typescript/module/text-field/TextField.d.ts.map +1 -1
- package/lib/typescript/module/theme/glass-colors.d.ts +67 -0
- package/lib/typescript/module/theme/glass-colors.d.ts.map +1 -1
- package/package.json +15 -1
- package/src/button/Button.tsx +10 -1
- package/src/button-group/ButtonGroup.tsx +146 -19
- package/src/button-group/types.ts +68 -5
- package/src/control-surface/ControlSurface.tsx +41 -0
- package/src/control-surface/context.ts +81 -0
- package/src/control-surface/index.ts +4 -0
- package/src/control-surface/types.ts +40 -0
- package/src/field/Field.tsx +84 -27
- package/src/field/context.ts +110 -0
- package/src/field/index.ts +3 -0
- package/src/field/types.ts +22 -3
- package/src/floating/TriggerSlot.tsx +35 -1
- package/src/glass/GlassIsland.tsx +109 -0
- package/src/glass/GlassSurface.tsx +26 -2
- package/src/glass/index.ts +3 -0
- package/src/glass/types.ts +45 -0
- package/src/index.ts +6 -0
- package/src/index.web.ts +6 -0
- package/src/label/Label.tsx +3 -1
- package/src/label/types.ts +7 -1
- package/src/layout/bottom-edge.tsx +3 -56
- package/src/layout/edge-store.ts +69 -0
- package/src/layout/index.ts +8 -3
- package/src/layout/scroll-offset.ts +76 -0
- package/src/layout/top-edge.tsx +109 -0
- package/src/page-header/EdgeScrim.tsx +118 -0
- package/src/page-header/PageHeader.tsx +253 -61
- package/src/page-header/index.ts +9 -1
- package/src/page-header/types.ts +103 -10
- package/src/provider/BloomProvider.tsx +12 -1
- package/src/social-button/OxyMark.tsx +1 -1
- package/src/social-button/SocialButton.tsx +1 -1
- package/src/styles/svg-id.ts +23 -0
- package/src/text-field/TextField.tsx +44 -5
- package/src/theme/glass-colors.ts +80 -0
- package/lib/commonjs/social-button/use-svg-id.js +0 -16
- package/lib/commonjs/social-button/use-svg-id.js.map +0 -1
- package/lib/module/social-button/use-svg-id.js +0 -13
- package/lib/module/social-button/use-svg-id.js.map +0 -1
- package/lib/typescript/commonjs/social-button/use-svg-id.d.ts +0 -7
- package/lib/typescript/commonjs/social-button/use-svg-id.d.ts.map +0 -1
- package/lib/typescript/module/social-button/use-svg-id.d.ts +0 -7
- package/lib/typescript/module/social-button/use-svg-id.d.ts.map +0 -1
- 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 @@
|
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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","
|
|
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":"
|
|
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":";;;;;;AAwBA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAA0E,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,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;AA7B1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA,SAASkB,YAAYA,CACnBC,QAAyB,EACzBC,MAA0B,EACN;EACpB,MAAMC,KAAK,GAAGC,eAAQ,CAACC,IAAI,CAACJ,QAAQ,CAAC;EACrC,IAAI,eAAC,IAAAK,qBAAc,EAAqBH,KAAK,CAAC,EAAE;IAC9C,MAAM,IAAII,KAAK,CACb,gHACF,CAAC;EACH;EACA,
|
|
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":[]}
|