@oxy.so/bloom 2.12.4 → 3.0.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/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 +61 -0
- package/docs/layout.mdx +72 -4
- package/docs/migrating-to-3.0.mdx +169 -0
- package/docs/page-header.mdx +237 -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
|
@@ -6,18 +6,37 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ButtonGroupItem = exports.ButtonGroup = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _index = require("../control-surface/index.js");
|
|
10
|
+
var _index2 = require("../glass/index.js");
|
|
9
11
|
var _useTheme = require("../theme/use-theme.js");
|
|
10
12
|
var _Typography = require("../typography/Typography.js");
|
|
11
13
|
var _useInteractionState = require("../hooks/use-interaction-state.js");
|
|
14
|
+
var _surfaceLevels = require("../styles/surface-levels.js");
|
|
12
15
|
var _interactiveWebCss = require("../styles/interactive-web-css.js");
|
|
16
|
+
var _colorUtils = require("../theme/color-utils.js");
|
|
13
17
|
var _shared = require("../button/shared.js");
|
|
14
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
19
|
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); }
|
|
16
20
|
/**
|
|
17
|
-
* A group of
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
+
* A group of buttons the consumer has declared as ONE control.
|
|
22
|
+
*
|
|
23
|
+
* ── TWO MATERIALS, ONE GROUP ────────────────────────────────────────────────
|
|
24
|
+
*
|
|
25
|
+
* `solid` is the original: one bordered, shadowed container, items divided by
|
|
26
|
+
* 1px hairlines, only the outer ends rounded, colours from the same
|
|
27
|
+
* Bloom-derived ramps as `Button` (`button/shared.ts`).
|
|
28
|
+
*
|
|
29
|
+
* `glass` is the same group as a floating ISLAND — one translucent pane
|
|
30
|
+
* (`glass/GlassIsland`) that the items sit FLUSH on. The group owns the
|
|
31
|
+
* material and the items paint no fill of their own at rest; a second fill
|
|
32
|
+
* under a translucent pane is the thing that makes a row of controls read as a
|
|
33
|
+
* row of cards rather than as one island, and a second BLUR is not available at
|
|
34
|
+
* all on Android.
|
|
35
|
+
*
|
|
36
|
+
* Neither is a decoration a caller has to ask for by name. The variant is
|
|
37
|
+
* INHERITED from the nearest `ControlSurface`, so `<ButtonGroup>` inside a
|
|
38
|
+
* floating `PageHeader` is glass and the same group inside a card is solid,
|
|
39
|
+
* with no prop either way. An explicit `variant` still wins.
|
|
21
40
|
*
|
|
22
41
|
* medium small
|
|
23
42
|
* item h 34 30 (plus the container's 1px border = 36 / 32)
|
|
@@ -68,6 +87,51 @@ function resolveGroupPalette(theme) {
|
|
|
68
87
|
};
|
|
69
88
|
}
|
|
70
89
|
|
|
90
|
+
/**
|
|
91
|
+
* The items' paint on a GLASS island.
|
|
92
|
+
*
|
|
93
|
+
* Every state that is not "at rest" is an alpha of the theme's own `text` — an
|
|
94
|
+
* ink wash, not a fill. That is the one recipe that works on a pane whose
|
|
95
|
+
* composited colour Bloom cannot predict: a fixed neutral tuned against the
|
|
96
|
+
* island's own fill goes invisible the moment a photograph behind it moves the
|
|
97
|
+
* pane 40 levels, while a wash of the label's colour keeps the same relation to
|
|
98
|
+
* the label at every composite.
|
|
99
|
+
*
|
|
100
|
+
* `transparent` at rest is load-bearing rather than tidy. It is what makes the
|
|
101
|
+
* island ONE pane: give the items a fill and the group is a row of chips inside
|
|
102
|
+
* a capsule, which is the shape this variant exists to stop.
|
|
103
|
+
*
|
|
104
|
+
* The disabled label is read off the island's own fill with `surfaceTextOn`
|
|
105
|
+
* rather than picked from the ramp, because a ramp stop measured against the
|
|
106
|
+
* page is not measured against this surface.
|
|
107
|
+
*/
|
|
108
|
+
function resolveGlassItemPalette(theme) {
|
|
109
|
+
const {
|
|
110
|
+
accent
|
|
111
|
+
} = (0, _shared.resolveButtonRamps)(theme);
|
|
112
|
+
const level = (0, _surfaceLevels.resolveSurfaceLevel)(theme, 1);
|
|
113
|
+
const ink = theme.colors.text;
|
|
114
|
+
const wash = theme.isDark ? {
|
|
115
|
+
hover: 0.12,
|
|
116
|
+
active: 0.2
|
|
117
|
+
} : {
|
|
118
|
+
hover: 0.08,
|
|
119
|
+
active: 0.14
|
|
120
|
+
};
|
|
121
|
+
return {
|
|
122
|
+
// The island owns the box: the group draws neither border nor divider.
|
|
123
|
+
groupBorder: 'transparent',
|
|
124
|
+
divider: (0, _colorUtils.withAlpha)(ink, theme.isDark ? 0.16 : 0.12),
|
|
125
|
+
background: 'transparent',
|
|
126
|
+
hover: (0, _colorUtils.withAlpha)(ink, wash.hover),
|
|
127
|
+
active: (0, _colorUtils.withAlpha)(ink, wash.active),
|
|
128
|
+
disabledBackground: 'transparent',
|
|
129
|
+
foreground: ink,
|
|
130
|
+
disabledForeground: level.textGraphical,
|
|
131
|
+
ring: accent[500]
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
|
|
71
135
|
// ---------------------------------------------------------------------------
|
|
72
136
|
// Keyboard focus on web — an inset `ring-2`. Items are react-native-web
|
|
73
137
|
// `Pressable`s, so the rules hang off a `dataSet` attribute (a class never
|
|
@@ -104,7 +168,9 @@ ${SELECTOR}${_interactiveWebCss.NOT_DISABLED}:focus-visible {
|
|
|
104
168
|
const IS_WEB = _reactNative.Platform.OS === 'web';
|
|
105
169
|
const GroupContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
106
170
|
const ButtonGroupComponent = ({
|
|
107
|
-
|
|
171
|
+
variant,
|
|
172
|
+
size: sizeProp,
|
|
173
|
+
dividers,
|
|
108
174
|
children,
|
|
109
175
|
accessibilityLabel,
|
|
110
176
|
style,
|
|
@@ -112,12 +178,36 @@ const ButtonGroupComponent = ({
|
|
|
112
178
|
}) => {
|
|
113
179
|
const theme = (0, _useTheme.useTheme)();
|
|
114
180
|
(0, _interactiveWebCss.useInteractiveWebCss)(STYLE_ID, BUTTON_GROUP_CSS);
|
|
115
|
-
const
|
|
181
|
+
const material = (0, _index.useInheritedControl)('material', variant, 'solid');
|
|
182
|
+
const size = (0, _index.useInheritedControl)('density', sizeProp, 'medium');
|
|
183
|
+
const palette = (0, _react.useMemo)(() => material === 'glass' ? resolveGlassItemPalette(theme) : resolveGroupPalette(theme), [material, theme]);
|
|
116
184
|
const context = (0, _react.useMemo)(() => ({
|
|
117
185
|
size,
|
|
186
|
+
material,
|
|
118
187
|
palette
|
|
119
|
-
}), [size, palette]);
|
|
188
|
+
}), [size, material, palette]);
|
|
120
189
|
const items = _react.Children.toArray(children).filter(_react.isValidElement);
|
|
190
|
+
const showDividers = dividers ?? material === 'solid';
|
|
191
|
+
const row = items.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
|
|
192
|
+
children: [showDividers && index > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
193
|
+
style: {
|
|
194
|
+
width: 1,
|
|
195
|
+
backgroundColor: palette.divider
|
|
196
|
+
}
|
|
197
|
+
}) : null, item]
|
|
198
|
+
}, item.key ?? index));
|
|
199
|
+
if (material === 'glass') {
|
|
200
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GroupContext.Provider, {
|
|
201
|
+
value: context,
|
|
202
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.GlassIsland, {
|
|
203
|
+
role: "group",
|
|
204
|
+
accessibilityLabel: accessibilityLabel,
|
|
205
|
+
style: style,
|
|
206
|
+
testID: testID,
|
|
207
|
+
children: row
|
|
208
|
+
})
|
|
209
|
+
});
|
|
210
|
+
}
|
|
121
211
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GroupContext.Provider, {
|
|
122
212
|
value: context,
|
|
123
213
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
@@ -135,34 +225,40 @@ const ButtonGroupComponent = ({
|
|
|
135
225
|
boxShadow: _shared.BUTTON_SHADOW[theme.isDark ? 'dark' : 'light'],
|
|
136
226
|
overflow: 'hidden'
|
|
137
227
|
}, style],
|
|
138
|
-
children:
|
|
139
|
-
children: [index > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
140
|
-
style: {
|
|
141
|
-
width: 1,
|
|
142
|
-
backgroundColor: palette.divider
|
|
143
|
-
}
|
|
144
|
-
}) : null, item]
|
|
145
|
-
}, item.key ?? index))
|
|
228
|
+
children: row
|
|
146
229
|
})
|
|
147
230
|
});
|
|
148
231
|
};
|
|
149
232
|
const ButtonGroupItemComponent = ({
|
|
150
233
|
onPress,
|
|
234
|
+
onLongPress,
|
|
151
235
|
children,
|
|
152
236
|
size: sizeProp,
|
|
237
|
+
variant,
|
|
153
238
|
selected = false,
|
|
154
239
|
disabled = false,
|
|
155
240
|
iconOnly = false,
|
|
156
241
|
leadingIcon: LeadingIcon,
|
|
157
242
|
trailingIcon: TrailingIcon,
|
|
158
243
|
accessibilityLabel,
|
|
244
|
+
accessibilityRole = 'button',
|
|
245
|
+
hitSlop,
|
|
246
|
+
'aria-expanded': ariaExpanded,
|
|
247
|
+
'aria-haspopup': ariaHasPopup,
|
|
159
248
|
style,
|
|
160
249
|
testID
|
|
161
250
|
}) => {
|
|
162
251
|
const theme = (0, _useTheme.useTheme)();
|
|
163
252
|
const group = (0, _react.useContext)(GroupContext);
|
|
164
|
-
|
|
165
|
-
|
|
253
|
+
// An item can be rendered OUTSIDE its group's children — an anchored family's
|
|
254
|
+
// `asChild` trigger clones it into the caller's tree — so the material falls
|
|
255
|
+
// back to the inherited `ControlSurface` (which `GlassIsland` mounts) before
|
|
256
|
+
// it falls back to `solid`.
|
|
257
|
+
const inheritedMaterial = (0, _index.useInheritedControl)('material', undefined, 'solid');
|
|
258
|
+
const inheritedDensity = (0, _index.useInheritedControl)('density', undefined, 'medium');
|
|
259
|
+
const material = variant ?? group?.material ?? inheritedMaterial;
|
|
260
|
+
const palette = (0, _react.useMemo)(() => group && group.material === material ? group.palette : material === 'glass' ? resolveGlassItemPalette(theme) : resolveGroupPalette(theme), [group, material, theme]);
|
|
261
|
+
const size = sizeProp ?? group?.size ?? inheritedDensity;
|
|
166
262
|
const geometry = GEOMETRY[size];
|
|
167
263
|
const {
|
|
168
264
|
state: hovered,
|
|
@@ -186,6 +282,10 @@ const ButtonGroupItemComponent = ({
|
|
|
186
282
|
justifyContent: 'center',
|
|
187
283
|
gap: 4,
|
|
188
284
|
backgroundColor: background,
|
|
285
|
+
// On glass the island does not clip (a clipping node loses its iOS drop
|
|
286
|
+
// shadow), so the item rounds its OWN highlight. On solid the container
|
|
287
|
+
// clips and a square item is what makes the fused ends read as one pill.
|
|
288
|
+
borderRadius: material === 'glass' ? _shared.BUTTON_RADIUS : undefined,
|
|
189
289
|
'--bloom-button-group-ring': palette.ring
|
|
190
290
|
};
|
|
191
291
|
const labelStyle = {
|
|
@@ -199,21 +299,26 @@ const ButtonGroupItemComponent = ({
|
|
|
199
299
|
} : {}),
|
|
200
300
|
style: [containerStyle, style],
|
|
201
301
|
onPress: disabled ? undefined : onPress,
|
|
302
|
+
onLongPress: disabled ? undefined : onLongPress,
|
|
202
303
|
onPressIn: disabled ? undefined : onPressIn,
|
|
203
304
|
onPressOut: disabled ? undefined : onPressOut,
|
|
204
305
|
onHoverIn: onHoverIn,
|
|
205
306
|
onHoverOut: onHoverOut,
|
|
307
|
+
hitSlop: hitSlop,
|
|
206
308
|
disabled: disabled,
|
|
207
|
-
accessibilityRole:
|
|
309
|
+
accessibilityRole: accessibilityRole,
|
|
208
310
|
accessibilityLabel: accessibilityLabel
|
|
209
311
|
// Both spellings: react-native-web reads only `aria-pressed`, React Native
|
|
210
312
|
// has no `aria-pressed` and reads `accessibilityState`.
|
|
211
313
|
,
|
|
212
314
|
accessibilityState: {
|
|
213
315
|
disabled,
|
|
214
|
-
selected
|
|
316
|
+
selected,
|
|
317
|
+
expanded: ariaExpanded
|
|
215
318
|
},
|
|
216
319
|
"aria-pressed": selected,
|
|
320
|
+
"aria-expanded": ariaExpanded,
|
|
321
|
+
"aria-haspopup": ariaHasPopup,
|
|
217
322
|
testID: testID,
|
|
218
323
|
children: [LeadingIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(LeadingIcon, {
|
|
219
324
|
width: geometry.iconSize,
|
|
@@ -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":[]}
|