@oxyhq/bloom 0.12.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/fab/Fab.js +4 -1
- package/lib/commonjs/fab/Fab.js.map +1 -1
- package/lib/commonjs/fab/Fab.web.js +25 -11
- package/lib/commonjs/fab/Fab.web.js.map +1 -1
- package/lib/module/fab/Fab.js +4 -1
- package/lib/module/fab/Fab.js.map +1 -1
- package/lib/module/fab/Fab.web.js +25 -11
- package/lib/module/fab/Fab.web.js.map +1 -1
- package/lib/typescript/commonjs/fab/Fab.d.ts.map +1 -1
- package/lib/typescript/commonjs/fab/Fab.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/fab/types.d.ts +10 -6
- package/lib/typescript/commonjs/fab/types.d.ts.map +1 -1
- package/lib/typescript/module/fab/Fab.d.ts.map +1 -1
- package/lib/typescript/module/fab/Fab.web.d.ts.map +1 -1
- package/lib/typescript/module/fab/types.d.ts +10 -6
- package/lib/typescript/module/fab/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/Fab.web.test.tsx +13 -0
- package/src/fab/Fab.tsx +4 -1
- package/src/fab/Fab.web.tsx +25 -11
- package/src/fab/types.ts +10 -6
package/lib/commonjs/fab/Fab.js
CHANGED
|
@@ -11,10 +11,13 @@ var _usePressAnimation = require("../hooks/usePressAnimation.js");
|
|
|
11
11
|
var _useInteractionState = require("../hooks/useInteractionState.js");
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
13
|
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); }
|
|
14
|
+
// Material-style FAB scale. `small` (40px, the compact FAB Mention uses) keeps a
|
|
15
|
+
// full 24px icon box so the glyph reads clearly; `medium` (56px) is the
|
|
16
|
+
// canonical FAB; `large` (64px) is the high-prominence action.
|
|
14
17
|
const SIZE_CONFIG = {
|
|
15
18
|
small: {
|
|
16
19
|
diameter: 40,
|
|
17
|
-
iconBox:
|
|
20
|
+
iconBox: 24,
|
|
18
21
|
fontSize: 14
|
|
19
22
|
},
|
|
20
23
|
medium: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_usePressAnimation","_useInteractionState","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","PILL_RADIUS","PRESS_SCALE","DEFAULT_OFFSET","DEFAULT_Z_INDEX","HIT_SLOP","top","bottom","left","right","placementStyle","placement","offset","style","position","FabComponent","onPress","icon","children","label","variant","size","disabled","accessibilityLabel","accessibilityHint","labelStyle","className","testID","zIndex","theme","useTheme","sizeConfig","isExtended","length","content","scaleAnim","onPressIn","onPressOut","usePressAnimation","undefined","state","pressed","onIn","onPressedIn","onOut","onPressedOut","useInteractionState","resolvedColors","useMemo","resolveVariant","colors","containerStyle","base","alignItems","justifyContent","flexDirection","backgroundColor","background","borderRadius","height","shadowColor","shadow","shadowOffset","width","shadowOpacity","shadowRadius","elevation","paddingHorizontal","gap","labelTextStyle","fontWeight","color","foreground","handlePressIn","handlePressOut","jsx","Animated","View","transform","scale","jsxs","Pressable","opacity","hitSlop","accessibilityRole","accessibilityState","Text","numberOfLines","card","text","primary","primaryForeground","Fab","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_usePressAnimation","_useInteractionState","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","PILL_RADIUS","PRESS_SCALE","DEFAULT_OFFSET","DEFAULT_Z_INDEX","HIT_SLOP","top","bottom","left","right","placementStyle","placement","offset","style","position","FabComponent","onPress","icon","children","label","variant","size","disabled","accessibilityLabel","accessibilityHint","labelStyle","className","testID","zIndex","theme","useTheme","sizeConfig","isExtended","length","content","scaleAnim","onPressIn","onPressOut","usePressAnimation","undefined","state","pressed","onIn","onPressedIn","onOut","onPressedOut","useInteractionState","resolvedColors","useMemo","resolveVariant","colors","containerStyle","base","alignItems","justifyContent","flexDirection","backgroundColor","background","borderRadius","height","shadowColor","shadow","shadowOffset","width","shadowOpacity","shadowRadius","elevation","paddingHorizontal","gap","labelTextStyle","fontWeight","color","foreground","handlePressIn","handlePressOut","jsx","Animated","View","transform","scale","jsxs","Pressable","opacity","hitSlop","accessibilityRole","accessibilityState","Text","numberOfLines","card","text","primary","primaryForeground","Fab","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,10 +8,13 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _useTheme = require("../theme/use-theme.js");
|
|
9
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
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
|
+
// Material-style FAB scale. `small` (40px, the compact FAB Mention uses) keeps a
|
|
12
|
+
// full 24px icon box so the glyph reads clearly; `medium` (56px) is the
|
|
13
|
+
// canonical FAB; `large` (64px) is the high-prominence action.
|
|
11
14
|
const SIZE_CONFIG = {
|
|
12
15
|
small: {
|
|
13
16
|
diameter: 40,
|
|
14
|
-
iconBox:
|
|
17
|
+
iconBox: 24,
|
|
15
18
|
fontSize: 14
|
|
16
19
|
},
|
|
17
20
|
medium: {
|
|
@@ -95,26 +98,37 @@ function useFabCss() {
|
|
|
95
98
|
* CENTRAL CONTENT COLUMN as it scrolls and never escapes to the viewport edge /
|
|
96
99
|
* over a side rail in a constrained multi-column app layout.
|
|
97
100
|
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
101
|
+
* Pinning a FAB to the BOTTOM of a column needs TWO mechanisms working together,
|
|
102
|
+
* because sticky alone is not enough:
|
|
103
|
+
*
|
|
104
|
+
* 1. `margin-top: auto` — in a flex COLUMN this consumes all the free vertical
|
|
105
|
+
* space, pushing the FAB to the bottom of the container EVEN WHEN THE
|
|
106
|
+
* CONTENT IS SHORT (e.g. an empty feed / loading spinner). Without it, a
|
|
107
|
+
* short column leaves the FAB at its natural flow position (mid-column) —
|
|
108
|
+
* which is exactly the "floating in the middle / broken" bug.
|
|
109
|
+
* 2. `position: sticky; bottom` — when the content is TALL and the column
|
|
110
|
+
* scrolls, sticky keeps the FAB pinned to the bottom of the viewport as the
|
|
111
|
+
* user scrolls, instead of scrolling away with the content.
|
|
112
|
+
*
|
|
113
|
+
* Horizontal placement uses `align-self` (sticky elements can't be pushed by
|
|
114
|
+
* `left`/`right` the way absolute ones are) plus an inline-edge margin for the
|
|
115
|
+
* `offset`. The consumer column MUST be a flex column that fills the available
|
|
116
|
+
* height, and the FAB MUST be its last child — documented in the usage story.
|
|
103
117
|
*/
|
|
104
118
|
function placementStyle(placement, offset) {
|
|
105
119
|
if (placement === 'static') return {};
|
|
106
120
|
const style = {
|
|
107
121
|
position: 'sticky'
|
|
108
122
|
};
|
|
109
|
-
|
|
123
|
+
const isBottom = placement === 'bottom-right' || placement === 'bottom-left';
|
|
124
|
+
if (isBottom) {
|
|
110
125
|
style.bottom = offset;
|
|
126
|
+
// Push the FAB to the bottom of a (flex-column) container even when the
|
|
127
|
+
// content is too short to scroll, so it never floats mid-column.
|
|
128
|
+
style.marginTop = 'auto';
|
|
111
129
|
} else {
|
|
112
130
|
style.top = offset;
|
|
113
131
|
}
|
|
114
|
-
// Sticky elements can't be pushed horizontally by left/right the way absolute
|
|
115
|
-
// ones are; we self-align within the (flex column) container instead, and add
|
|
116
|
-
// a horizontal margin for the offset so the FAB sits `offset` px from the
|
|
117
|
-
// column's inline edge.
|
|
118
132
|
if (placement === 'bottom-right' || placement === 'top-right') {
|
|
119
133
|
style.alignSelf = 'flex-end';
|
|
120
134
|
style.marginRight = offset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_useTheme","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","PILL_RADIUS","PRESS_SCALE","DEFAULT_OFFSET","DEFAULT_Z_INDEX","STYLE_ID","BLOOM_FAB_CSS","useFabCss","useEffect","document","getElementById","style","createElement","id","textContent","head","appendChild","placementStyle","placement","offset","position","bottom","top","alignSelf","marginRight","marginLeft","resolveVariant","variant","c","background","card","foreground","text","ring","primary","primaryForeground","FabWebComponent","onPress","onClick","icon","children","label","size","disabled","accessibilityLabel","ariaLabelProp","accessibilityHint","labelStyle","className","testID","zIndex","title","type","theme","useTheme","reactId","useId","resolvedId","sizeConfig","isExtended","length","content","variantColors","useMemo","colors","restShadow","shadow","hoverShadow","containerStyle","base","backgroundColor","color","borderRadius","height","boxShadow","fontWeight","paddingLeft","paddingRight","width","handleClick","useCallback","event","preventDefault","ariaLabel","composedClassName","concat","join","jsxs","undefined","jsx","display","alignItems","justifyContent","Fab","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.web.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_useTheme","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","PILL_RADIUS","PRESS_SCALE","DEFAULT_OFFSET","DEFAULT_Z_INDEX","STYLE_ID","BLOOM_FAB_CSS","useFabCss","useEffect","document","getElementById","style","createElement","id","textContent","head","appendChild","placementStyle","placement","offset","position","isBottom","bottom","marginTop","top","alignSelf","marginRight","marginLeft","resolveVariant","variant","c","background","card","foreground","text","ring","primary","primaryForeground","FabWebComponent","onPress","onClick","icon","children","label","size","disabled","accessibilityLabel","ariaLabelProp","accessibilityHint","labelStyle","className","testID","zIndex","title","type","theme","useTheme","reactId","useId","resolvedId","sizeConfig","isExtended","length","content","variantColors","useMemo","colors","restShadow","shadow","hoverShadow","containerStyle","base","backgroundColor","color","borderRadius","height","boxShadow","fontWeight","paddingLeft","paddingRight","width","handleClick","useCallback","event","preventDefault","ariaLabel","composedClassName","concat","join","jsxs","undefined","jsx","display","alignItems","justifyContent","Fab","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.web.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/fab/Fab.js
CHANGED
|
@@ -6,10 +6,13 @@ import { useTheme } from "../theme/use-theme.js";
|
|
|
6
6
|
import { usePressAnimation } from "../hooks/usePressAnimation.js";
|
|
7
7
|
import { useInteractionState } from "../hooks/useInteractionState.js";
|
|
8
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
// Material-style FAB scale. `small` (40px, the compact FAB Mention uses) keeps a
|
|
10
|
+
// full 24px icon box so the glyph reads clearly; `medium` (56px) is the
|
|
11
|
+
// canonical FAB; `large` (64px) is the high-prominence action.
|
|
9
12
|
const SIZE_CONFIG = {
|
|
10
13
|
small: {
|
|
11
14
|
diameter: 40,
|
|
12
|
-
iconBox:
|
|
15
|
+
iconBox: 24,
|
|
13
16
|
fontSize: 14
|
|
14
17
|
},
|
|
15
18
|
medium: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useMemo","Animated","Pressable","Text","View","useTheme","usePressAnimation","useInteractionState","jsx","_jsx","jsxs","_jsxs","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","PILL_RADIUS","PRESS_SCALE","DEFAULT_OFFSET","DEFAULT_Z_INDEX","HIT_SLOP","top","bottom","left","right","placementStyle","placement","offset","style","position","FabComponent","onPress","icon","children","label","variant","size","disabled","accessibilityLabel","accessibilityHint","labelStyle","className","testID","zIndex","theme","sizeConfig","isExtended","length","content","scaleAnim","onPressIn","onPressOut","undefined","state","pressed","onIn","onPressedIn","onOut","onPressedOut","resolvedColors","resolveVariant","colors","containerStyle","base","alignItems","justifyContent","flexDirection","backgroundColor","background","borderRadius","height","shadowColor","shadow","shadowOffset","width","shadowOpacity","shadowRadius","elevation","paddingHorizontal","gap","labelTextStyle","fontWeight","color","foreground","handlePressIn","handlePressOut","transform","scale","opacity","hitSlop","accessibilityRole","accessibilityState","numberOfLines","card","text","primary","primaryForeground","Fab","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","memo","useMemo","Animated","Pressable","Text","View","useTheme","usePressAnimation","useInteractionState","jsx","_jsx","jsxs","_jsxs","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","PILL_RADIUS","PRESS_SCALE","DEFAULT_OFFSET","DEFAULT_Z_INDEX","HIT_SLOP","top","bottom","left","right","placementStyle","placement","offset","style","position","FabComponent","onPress","icon","children","label","variant","size","disabled","accessibilityLabel","accessibilityHint","labelStyle","className","testID","zIndex","theme","sizeConfig","isExtended","length","content","scaleAnim","onPressIn","onPressOut","undefined","state","pressed","onIn","onPressedIn","onOut","onPressedOut","resolvedColors","resolveVariant","colors","containerStyle","base","alignItems","justifyContent","flexDirection","backgroundColor","background","borderRadius","height","shadowColor","shadow","shadowOffset","width","shadowOpacity","shadowRadius","elevation","paddingHorizontal","gap","labelTextStyle","fontWeight","color","foreground","handlePressIn","handlePressOut","transform","scale","opacity","hitSlop","accessibilityRole","accessibilityState","numberOfLines","card","text","primary","primaryForeground","Fab","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,10 +3,13 @@
|
|
|
3
3
|
import React, { memo, useCallback, useEffect, useId, useMemo } from 'react';
|
|
4
4
|
import { useTheme } from "../theme/use-theme.js";
|
|
5
5
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
// Material-style FAB scale. `small` (40px, the compact FAB Mention uses) keeps a
|
|
7
|
+
// full 24px icon box so the glyph reads clearly; `medium` (56px) is the
|
|
8
|
+
// canonical FAB; `large` (64px) is the high-prominence action.
|
|
6
9
|
const SIZE_CONFIG = {
|
|
7
10
|
small: {
|
|
8
11
|
diameter: 40,
|
|
9
|
-
iconBox:
|
|
12
|
+
iconBox: 24,
|
|
10
13
|
fontSize: 14
|
|
11
14
|
},
|
|
12
15
|
medium: {
|
|
@@ -90,26 +93,37 @@ function useFabCss() {
|
|
|
90
93
|
* CENTRAL CONTENT COLUMN as it scrolls and never escapes to the viewport edge /
|
|
91
94
|
* over a side rail in a constrained multi-column app layout.
|
|
92
95
|
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
96
|
+
* Pinning a FAB to the BOTTOM of a column needs TWO mechanisms working together,
|
|
97
|
+
* because sticky alone is not enough:
|
|
98
|
+
*
|
|
99
|
+
* 1. `margin-top: auto` — in a flex COLUMN this consumes all the free vertical
|
|
100
|
+
* space, pushing the FAB to the bottom of the container EVEN WHEN THE
|
|
101
|
+
* CONTENT IS SHORT (e.g. an empty feed / loading spinner). Without it, a
|
|
102
|
+
* short column leaves the FAB at its natural flow position (mid-column) —
|
|
103
|
+
* which is exactly the "floating in the middle / broken" bug.
|
|
104
|
+
* 2. `position: sticky; bottom` — when the content is TALL and the column
|
|
105
|
+
* scrolls, sticky keeps the FAB pinned to the bottom of the viewport as the
|
|
106
|
+
* user scrolls, instead of scrolling away with the content.
|
|
107
|
+
*
|
|
108
|
+
* Horizontal placement uses `align-self` (sticky elements can't be pushed by
|
|
109
|
+
* `left`/`right` the way absolute ones are) plus an inline-edge margin for the
|
|
110
|
+
* `offset`. The consumer column MUST be a flex column that fills the available
|
|
111
|
+
* height, and the FAB MUST be its last child — documented in the usage story.
|
|
98
112
|
*/
|
|
99
113
|
function placementStyle(placement, offset) {
|
|
100
114
|
if (placement === 'static') return {};
|
|
101
115
|
const style = {
|
|
102
116
|
position: 'sticky'
|
|
103
117
|
};
|
|
104
|
-
|
|
118
|
+
const isBottom = placement === 'bottom-right' || placement === 'bottom-left';
|
|
119
|
+
if (isBottom) {
|
|
105
120
|
style.bottom = offset;
|
|
121
|
+
// Push the FAB to the bottom of a (flex-column) container even when the
|
|
122
|
+
// content is too short to scroll, so it never floats mid-column.
|
|
123
|
+
style.marginTop = 'auto';
|
|
106
124
|
} else {
|
|
107
125
|
style.top = offset;
|
|
108
126
|
}
|
|
109
|
-
// Sticky elements can't be pushed horizontally by left/right the way absolute
|
|
110
|
-
// ones are; we self-align within the (flex column) container instead, and add
|
|
111
|
-
// a horizontal margin for the offset so the FAB sits `offset` px from the
|
|
112
|
-
// column's inline edge.
|
|
113
127
|
if (placement === 'bottom-right' || placement === 'top-right') {
|
|
114
128
|
style.alignSelf = 'flex-end';
|
|
115
129
|
style.marginRight = offset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useCallback","useEffect","useId","useMemo","useTheme","jsx","_jsx","jsxs","_jsxs","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","PILL_RADIUS","PRESS_SCALE","DEFAULT_OFFSET","DEFAULT_Z_INDEX","STYLE_ID","BLOOM_FAB_CSS","useFabCss","document","getElementById","style","createElement","id","textContent","head","appendChild","placementStyle","placement","offset","position","bottom","top","alignSelf","marginRight","marginLeft","resolveVariant","variant","c","background","card","foreground","text","ring","primary","primaryForeground","FabWebComponent","onPress","onClick","icon","children","label","size","disabled","accessibilityLabel","ariaLabelProp","accessibilityHint","labelStyle","className","testID","zIndex","title","type","theme","reactId","resolvedId","sizeConfig","isExtended","length","content","variantColors","colors","restShadow","shadow","hoverShadow","containerStyle","base","backgroundColor","color","borderRadius","height","boxShadow","fontWeight","paddingLeft","paddingRight","width","handleClick","event","preventDefault","ariaLabel","composedClassName","concat","join","undefined","display","alignItems","justifyContent","Fab","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.web.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,IAAI,EACJC,WAAW,EACXC,SAAS,EACTC,KAAK,EACLC,OAAO,QAGF,OAAO;AAEd,SAASC,QAAQ,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAM9C,MAAMC,WAAqF,GAAG;EAC5FC,KAAK,EAAE;IAAEC,QAAQ,EAAE,EAAE;IAAEC,OAAO,EAAE,EAAE;IAAEC,QAAQ,EAAE;EAAG,CAAC;EAClDC,MAAM,EAAE;IAAEH,QAAQ,EAAE,EAAE;IAAEC,OAAO,EAAE,EAAE;IAAEC,QAAQ,EAAE;EAAG,CAAC;EACnDE,KAAK,EAAE;IAAEJ,QAAQ,EAAE,EAAE;IAAEC,OAAO,EAAE,EAAE;IAAEC,QAAQ,EAAE;EAAG;AACnD,CAAC;AAED,MAAMG,WAAW,GAAG,GAAG;AACvB,MAAMC,WAAW,GAAG,IAAI;AACxB,MAAMC,cAAc,GAAG,EAAE;AACzB,MAAMC,eAAe,GAAG,EAAE;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,QAAQ,GAAG,mBAAmB;AAEpC,MAAMC,aAAa,GAAG;AACtB;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,CAAC;AAED,SAASC,SAASA,CAAA,EAAS;EACzBrB,SAAS,CAAC,MAAM;IACd,IAAI,OAAOsB,QAAQ,KAAK,WAAW,EAAE;IACrC,IAAIA,QAAQ,CAACC,cAAc,CAACJ,QAAQ,CAAC,EAAE;IACvC,MAAMK,KAAK,GAAGF,QAAQ,CAACG,aAAa,CAAC,OAAO,CAAC;IAC7CD,KAAK,CAACE,EAAE,GAAGP,QAAQ;IACnBK,KAAK,CAACG,WAAW,GAAGP,aAAa;IACjCE,QAAQ,CAACM,IAAI,CAACC,WAAW,CAACL,KAAK,CAAC;EAClC,CAAC,EAAE,EAAE,CAAC;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASM,cAAcA,CAACC,SAAuB,EAAEC,MAAc,EAAiB;EAC9E,IAAID,SAAS,KAAK,QAAQ,EAAE,OAAO,CAAC,CAAC;EACrC,MAAMP,KAAoB,GAAG;IAAES,QAAQ,EAAE;EAAS,CAAC;EACnD,
|
|
1
|
+
{"version":3,"names":["React","memo","useCallback","useEffect","useId","useMemo","useTheme","jsx","_jsx","jsxs","_jsxs","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","PILL_RADIUS","PRESS_SCALE","DEFAULT_OFFSET","DEFAULT_Z_INDEX","STYLE_ID","BLOOM_FAB_CSS","useFabCss","document","getElementById","style","createElement","id","textContent","head","appendChild","placementStyle","placement","offset","position","isBottom","bottom","marginTop","top","alignSelf","marginRight","marginLeft","resolveVariant","variant","c","background","card","foreground","text","ring","primary","primaryForeground","FabWebComponent","onPress","onClick","icon","children","label","size","disabled","accessibilityLabel","ariaLabelProp","accessibilityHint","labelStyle","className","testID","zIndex","title","type","theme","reactId","resolvedId","sizeConfig","isExtended","length","content","variantColors","colors","restShadow","shadow","hoverShadow","containerStyle","base","backgroundColor","color","borderRadius","height","boxShadow","fontWeight","paddingLeft","paddingRight","width","handleClick","event","preventDefault","ariaLabel","composedClassName","concat","join","undefined","display","alignItems","justifyContent","Fab","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fab.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAa7C,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Fab.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAa7C,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA+K3E,eAAO,MAAM,GAAG,sCAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAgQ3E,eAAO,MAAM,GAAG,sCAAwB,CAAC"}
|
|
@@ -23,11 +23,14 @@ export type FabSize = 'small' | 'medium' | 'large';
|
|
|
23
23
|
* Where the FAB anchors itself.
|
|
24
24
|
*
|
|
25
25
|
* - `bottom-right` (default) / `bottom-left` / `top-right` / `top-left` —
|
|
26
|
-
* the FAB pins itself to that corner of its CONTAINING block
|
|
27
|
-
* uses `position:
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
26
|
+
* the FAB pins itself to that corner of its CONTAINING block, never the
|
|
27
|
+
* viewport. On native it uses `position: absolute` within the nearest
|
|
28
|
+
* positioned ancestor. On web a `bottom-*` placement combines
|
|
29
|
+
* `margin-top: auto` (pins to the bottom of a flex COLUMN even when the
|
|
30
|
+
* content is short / not scrolling) with `position: sticky; bottom` (keeps
|
|
31
|
+
* it visible while a tall column scrolls). The consumer column MUST be a
|
|
32
|
+
* flex column that fills the available height and the FAB MUST be its last
|
|
33
|
+
* child.
|
|
31
34
|
* - `static` — no positioning at all. The FAB is laid out inline and the
|
|
32
35
|
* consumer is fully responsible for placement (e.g. wrapping it in their
|
|
33
36
|
* own absolutely/sticky-positioned container). Use this when you need
|
|
@@ -35,7 +38,8 @@ export type FabSize = 'small' | 'medium' | 'large';
|
|
|
35
38
|
*
|
|
36
39
|
* CRITICAL: the positioned placements DO NOT use web `position: fixed` and are
|
|
37
40
|
* never anchored to the viewport. They stay inside the containing column so the
|
|
38
|
-
* FAB never escapes a constrained 3-column app layout and sits over a side rail
|
|
41
|
+
* FAB never escapes a constrained 3-column app layout and sits over a side rail,
|
|
42
|
+
* and never float mid-column when the content is short.
|
|
39
43
|
*/
|
|
40
44
|
export type FabPlacement = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'static';
|
|
41
45
|
export interface FabProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/fab/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/fab/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,YAAY,GACpB,cAAc,GACd,aAAa,GACb,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,QAAQ;IACvB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;;OAIG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;IAEzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAUhB,wDAAwD;IACxD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC/D,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fab.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAa7C,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Fab.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAa7C,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA+K3E,eAAO,MAAM,GAAG,sCAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAgQ3E,eAAO,MAAM,GAAG,sCAAwB,CAAC"}
|
|
@@ -23,11 +23,14 @@ export type FabSize = 'small' | 'medium' | 'large';
|
|
|
23
23
|
* Where the FAB anchors itself.
|
|
24
24
|
*
|
|
25
25
|
* - `bottom-right` (default) / `bottom-left` / `top-right` / `top-left` —
|
|
26
|
-
* the FAB pins itself to that corner of its CONTAINING block
|
|
27
|
-
* uses `position:
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
26
|
+
* the FAB pins itself to that corner of its CONTAINING block, never the
|
|
27
|
+
* viewport. On native it uses `position: absolute` within the nearest
|
|
28
|
+
* positioned ancestor. On web a `bottom-*` placement combines
|
|
29
|
+
* `margin-top: auto` (pins to the bottom of a flex COLUMN even when the
|
|
30
|
+
* content is short / not scrolling) with `position: sticky; bottom` (keeps
|
|
31
|
+
* it visible while a tall column scrolls). The consumer column MUST be a
|
|
32
|
+
* flex column that fills the available height and the FAB MUST be its last
|
|
33
|
+
* child.
|
|
31
34
|
* - `static` — no positioning at all. The FAB is laid out inline and the
|
|
32
35
|
* consumer is fully responsible for placement (e.g. wrapping it in their
|
|
33
36
|
* own absolutely/sticky-positioned container). Use this when you need
|
|
@@ -35,7 +38,8 @@ export type FabSize = 'small' | 'medium' | 'large';
|
|
|
35
38
|
*
|
|
36
39
|
* CRITICAL: the positioned placements DO NOT use web `position: fixed` and are
|
|
37
40
|
* never anchored to the viewport. They stay inside the containing column so the
|
|
38
|
-
* FAB never escapes a constrained 3-column app layout and sits over a side rail
|
|
41
|
+
* FAB never escapes a constrained 3-column app layout and sits over a side rail,
|
|
42
|
+
* and never float mid-column when the content is short.
|
|
39
43
|
*/
|
|
40
44
|
export type FabPlacement = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'static';
|
|
41
45
|
export interface FabProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/fab/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/fab/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,YAAY,GACpB,cAAc,GACd,aAAa,GACb,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,QAAQ;IACvB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;;OAIG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;IAEzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAUhB,wDAAwD;IACxD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC/D,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACtC"}
|
package/package.json
CHANGED
|
@@ -84,10 +84,23 @@ describe('Fab.web', () => {
|
|
|
84
84
|
expect(fab.style.alignSelf).toBe('flex-end');
|
|
85
85
|
});
|
|
86
86
|
|
|
87
|
+
it('sets margin-top: auto for bottom placements so a short column pins the FAB to the bottom', () => {
|
|
88
|
+
const c = mount(<Fab accessibilityLabel="Add" icon={<span>+</span>} />);
|
|
89
|
+
expect(getByRole(c, 'button').style.marginTop).toBe('auto');
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
it('does NOT set margin-top: auto for top placements', () => {
|
|
93
|
+
const c = mount(<Fab accessibilityLabel="Add" placement="top-right" icon={<span>+</span>} />);
|
|
94
|
+
const fab = getByRole(c, 'button');
|
|
95
|
+
expect(fab.style.marginTop).toBe('');
|
|
96
|
+
expect(fab.style.top).toBe('16px');
|
|
97
|
+
});
|
|
98
|
+
|
|
87
99
|
it('applies no positioning for placement="static"', () => {
|
|
88
100
|
const c = mount(<Fab accessibilityLabel="Add" placement="static" icon={<span>+</span>} />);
|
|
89
101
|
const fab = getByRole(c, 'button');
|
|
90
102
|
expect(fab.style.position).toBe('');
|
|
103
|
+
expect(fab.style.marginTop).toBe('');
|
|
91
104
|
});
|
|
92
105
|
|
|
93
106
|
it('renders an extended label', () => {
|
package/src/fab/Fab.tsx
CHANGED
|
@@ -15,8 +15,11 @@ import type { FabPlacement, FabProps, FabSize, FabVariant } from './types';
|
|
|
15
15
|
|
|
16
16
|
export type { FabProps, FabVariant, FabSize, FabPlacement } from './types';
|
|
17
17
|
|
|
18
|
+
// Material-style FAB scale. `small` (40px, the compact FAB Mention uses) keeps a
|
|
19
|
+
// full 24px icon box so the glyph reads clearly; `medium` (56px) is the
|
|
20
|
+
// canonical FAB; `large` (64px) is the high-prominence action.
|
|
18
21
|
const SIZE_CONFIG: Record<FabSize, { diameter: number; iconBox: number; fontSize: number }> = {
|
|
19
|
-
small: { diameter: 40, iconBox:
|
|
22
|
+
small: { diameter: 40, iconBox: 24, fontSize: 14 },
|
|
20
23
|
medium: { diameter: 56, iconBox: 24, fontSize: 15 },
|
|
21
24
|
large: { diameter: 64, iconBox: 28, fontSize: 16 },
|
|
22
25
|
};
|
package/src/fab/Fab.web.tsx
CHANGED
|
@@ -14,8 +14,11 @@ import type { FabPlacement, FabProps, FabSize, FabVariant } from './types';
|
|
|
14
14
|
|
|
15
15
|
export type { FabProps, FabVariant, FabSize, FabPlacement } from './types';
|
|
16
16
|
|
|
17
|
+
// Material-style FAB scale. `small` (40px, the compact FAB Mention uses) keeps a
|
|
18
|
+
// full 24px icon box so the glyph reads clearly; `medium` (56px) is the
|
|
19
|
+
// canonical FAB; `large` (64px) is the high-prominence action.
|
|
17
20
|
const SIZE_CONFIG: Record<FabSize, { diameter: number; iconBox: number; fontSize: number }> = {
|
|
18
|
-
small: { diameter: 40, iconBox:
|
|
21
|
+
small: { diameter: 40, iconBox: 24, fontSize: 14 },
|
|
19
22
|
medium: { diameter: 56, iconBox: 24, fontSize: 15 },
|
|
20
23
|
large: { diameter: 64, iconBox: 28, fontSize: 16 },
|
|
21
24
|
};
|
|
@@ -92,24 +95,35 @@ function useFabCss(): void {
|
|
|
92
95
|
* CENTRAL CONTENT COLUMN as it scrolls and never escapes to the viewport edge /
|
|
93
96
|
* over a side rail in a constrained multi-column app layout.
|
|
94
97
|
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
98
|
+
* Pinning a FAB to the BOTTOM of a column needs TWO mechanisms working together,
|
|
99
|
+
* because sticky alone is not enough:
|
|
100
|
+
*
|
|
101
|
+
* 1. `margin-top: auto` — in a flex COLUMN this consumes all the free vertical
|
|
102
|
+
* space, pushing the FAB to the bottom of the container EVEN WHEN THE
|
|
103
|
+
* CONTENT IS SHORT (e.g. an empty feed / loading spinner). Without it, a
|
|
104
|
+
* short column leaves the FAB at its natural flow position (mid-column) —
|
|
105
|
+
* which is exactly the "floating in the middle / broken" bug.
|
|
106
|
+
* 2. `position: sticky; bottom` — when the content is TALL and the column
|
|
107
|
+
* scrolls, sticky keeps the FAB pinned to the bottom of the viewport as the
|
|
108
|
+
* user scrolls, instead of scrolling away with the content.
|
|
109
|
+
*
|
|
110
|
+
* Horizontal placement uses `align-self` (sticky elements can't be pushed by
|
|
111
|
+
* `left`/`right` the way absolute ones are) plus an inline-edge margin for the
|
|
112
|
+
* `offset`. The consumer column MUST be a flex column that fills the available
|
|
113
|
+
* height, and the FAB MUST be its last child — documented in the usage story.
|
|
100
114
|
*/
|
|
101
115
|
function placementStyle(placement: FabPlacement, offset: number): CSSProperties {
|
|
102
116
|
if (placement === 'static') return {};
|
|
103
117
|
const style: CSSProperties = { position: 'sticky' };
|
|
104
|
-
|
|
118
|
+
const isBottom = placement === 'bottom-right' || placement === 'bottom-left';
|
|
119
|
+
if (isBottom) {
|
|
105
120
|
style.bottom = offset;
|
|
121
|
+
// Push the FAB to the bottom of a (flex-column) container even when the
|
|
122
|
+
// content is too short to scroll, so it never floats mid-column.
|
|
123
|
+
style.marginTop = 'auto';
|
|
106
124
|
} else {
|
|
107
125
|
style.top = offset;
|
|
108
126
|
}
|
|
109
|
-
// Sticky elements can't be pushed horizontally by left/right the way absolute
|
|
110
|
-
// ones are; we self-align within the (flex column) container instead, and add
|
|
111
|
-
// a horizontal margin for the offset so the FAB sits `offset` px from the
|
|
112
|
-
// column's inline edge.
|
|
113
127
|
if (placement === 'bottom-right' || placement === 'top-right') {
|
|
114
128
|
style.alignSelf = 'flex-end';
|
|
115
129
|
style.marginRight = offset;
|
package/src/fab/types.ts
CHANGED
|
@@ -26,11 +26,14 @@ export type FabSize = 'small' | 'medium' | 'large';
|
|
|
26
26
|
* Where the FAB anchors itself.
|
|
27
27
|
*
|
|
28
28
|
* - `bottom-right` (default) / `bottom-left` / `top-right` / `top-left` —
|
|
29
|
-
* the FAB pins itself to that corner of its CONTAINING block
|
|
30
|
-
* uses `position:
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
29
|
+
* the FAB pins itself to that corner of its CONTAINING block, never the
|
|
30
|
+
* viewport. On native it uses `position: absolute` within the nearest
|
|
31
|
+
* positioned ancestor. On web a `bottom-*` placement combines
|
|
32
|
+
* `margin-top: auto` (pins to the bottom of a flex COLUMN even when the
|
|
33
|
+
* content is short / not scrolling) with `position: sticky; bottom` (keeps
|
|
34
|
+
* it visible while a tall column scrolls). The consumer column MUST be a
|
|
35
|
+
* flex column that fills the available height and the FAB MUST be its last
|
|
36
|
+
* child.
|
|
34
37
|
* - `static` — no positioning at all. The FAB is laid out inline and the
|
|
35
38
|
* consumer is fully responsible for placement (e.g. wrapping it in their
|
|
36
39
|
* own absolutely/sticky-positioned container). Use this when you need
|
|
@@ -38,7 +41,8 @@ export type FabSize = 'small' | 'medium' | 'large';
|
|
|
38
41
|
*
|
|
39
42
|
* CRITICAL: the positioned placements DO NOT use web `position: fixed` and are
|
|
40
43
|
* never anchored to the viewport. They stay inside the containing column so the
|
|
41
|
-
* FAB never escapes a constrained 3-column app layout and sits over a side rail
|
|
44
|
+
* FAB never escapes a constrained 3-column app layout and sits over a side rail,
|
|
45
|
+
* and never float mid-column when the content is short.
|
|
42
46
|
*/
|
|
43
47
|
export type FabPlacement =
|
|
44
48
|
| 'bottom-right'
|