@qoretechnologies/reqore 0.76.3 → 0.77.0-pr.680.g682919a

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.
@@ -0,0 +1,68 @@
1
+ import React from 'react';
2
+ import { TSizes } from '../../constants/sizes';
3
+ import { TReqorePadded } from '../../helpers/utils';
4
+ import { IReqoreDisabled, IReqoreIntent, IWithReqoreCustomTheme, IWithReqoreEffect, IWithReqoreFixed, IWithReqoreFlat, IWithReqoreFluid, IWithReqoreMinimal, IWithReqoreSize, IWithReqoreTooltip, IWithReqoreTransparent } from '../../types/global';
5
+ import { IReqoreButtonProps } from '../Button';
6
+ export interface IReqoreButtonRailProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>, IReqoreDisabled, IReqoreIntent, IWithReqoreCustomTheme, IWithReqoreEffect, IWithReqoreFixed, IWithReqoreFlat, IWithReqoreFluid, IWithReqoreMinimal, IWithReqoreSize, IWithReqoreTooltip, IWithReqoreTransparent {
7
+ /**
8
+ * Buttons declared as data — each entry is a `ReqoreButton`'s own props
9
+ * (`label` is its text; `id`, when set, is also its React key). Rendered
10
+ * BEFORE `children`; both forms can be mixed and neither is dropped.
11
+ */
12
+ items?: IReqoreButtonProps[];
13
+ /** Lay the buttons out in a column instead of a row; the buttons share one width. */
14
+ vertical?: boolean;
15
+ /** Space between the buttons. Defaults to one step below `size`. */
16
+ gapSize?: TSizes;
17
+ /**
18
+ * Default props for every button in the rail (items and element children).
19
+ * A button's own props always win. The rail already defaults its buttons to
20
+ * `flat` (the rail is their surface) and to `pill` while the rail is a pill.
21
+ */
22
+ buttonProps?: Partial<IReqoreButtonProps>;
23
+ /**
24
+ * Round the rail. `true` (default) is a pill concentric with its buttons —
25
+ * which default to `pill` so the curves nest; `radiusSize` swaps the pill for
26
+ * a fixed radius;
27
+ * `false` squares the rail and its buttons.
28
+ */
29
+ rounded?: boolean;
30
+ /** A fixed corner radius from the pronounced `radiusSize` scale, instead of a pill. */
31
+ radiusSize?: TSizes;
32
+ /** Inner padding around the buttons. Default `true`. */
33
+ padded?: TReqorePadded;
34
+ /** Size the padding follows. Defaults to `size`. */
35
+ paddingSize?: TSizes;
36
+ /**
37
+ * Subtle 3D inset highlight. Only renders on a `flat` rail — a border already
38
+ * gives the surface its edge.
39
+ */
40
+ raised?: boolean;
41
+ /**
42
+ * The floating lift — a tight contact shadow plus a wide ambient one. Default
43
+ * `true`; never painted on a `transparent` / `minimal` rail, which has no
44
+ * surface to lift.
45
+ */
46
+ elevated?: boolean;
47
+ /**
48
+ * Opacity of the rail's surface colour (not of its buttons). Below `1` the
49
+ * surface is frosted: whatever is behind it is blurred by `blur`.
50
+ * @default 0.78
51
+ */
52
+ opacity?: number;
53
+ /**
54
+ * Backdrop blur in px behind a translucent surface (`opacity` < 1). `0` turns
55
+ * the frost off.
56
+ * @default 14
57
+ */
58
+ blur?: number;
59
+ /**
60
+ * Fold the buttons that do not fit into an overflow menu, exactly as a
61
+ * `responsive` `ReqoreControlGroup` does. Horizontal rails only.
62
+ */
63
+ responsive?: boolean;
64
+ }
65
+ export declare const StyledButtonRail: any;
66
+ export declare const ReqoreButtonRail: React.MemoExoticComponent<(props: IReqoreButtonRailProps & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null>;
67
+ export default ReqoreButtonRail;
68
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ButtonRail/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAItE,OAAO,EAAgD,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK7F,OAAO,EAAkC,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpF,OAAO,EACL,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAqB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAK7D,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EACzD,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,sBAAsB;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA6BD,eAAO,MAAM,gBAAgB,KAkD5B,CAAC;AA6BF,eAAO,MAAM,gBAAgB,+HAwN5B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || (function () {
34
+ var ownKeys = function(o) {
35
+ ownKeys = Object.getOwnPropertyNames || function (o) {
36
+ var ar = [];
37
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
38
+ return ar;
39
+ };
40
+ return ownKeys(o);
41
+ };
42
+ return function (mod) {
43
+ if (mod && mod.__esModule) return mod;
44
+ var result = {};
45
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
46
+ __setModuleDefault(result, mod);
47
+ return result;
48
+ };
49
+ })();
50
+ var __rest = (this && this.__rest) || function (s, e) {
51
+ var t = {};
52
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
53
+ t[p] = s[p];
54
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
55
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
56
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
57
+ t[p[i]] = s[p[i]];
58
+ }
59
+ return t;
60
+ };
61
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
62
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
63
+ if (ar || !(i in from)) {
64
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
65
+ ar[i] = from[i];
66
+ }
67
+ }
68
+ return to.concat(ar || Array.prototype.slice.call(from));
69
+ };
70
+ var __importDefault = (this && this.__importDefault) || function (mod) {
71
+ return (mod && mod.__esModule) ? mod : { "default": mod };
72
+ };
73
+ Object.defineProperty(exports, "__esModule", { value: true });
74
+ exports.ReqoreButtonRail = exports.StyledButtonRail = void 0;
75
+ var jsx_runtime_1 = require("react/jsx-runtime");
76
+ var polished_1 = require("polished");
77
+ var react_1 = __importStar(require("react"));
78
+ var styled_components_1 = __importStar(require("styled-components"));
79
+ var use_context_selector_1 = require("use-context-selector");
80
+ var colors_1 = require("../../constants/colors");
81
+ var sizes_1 = require("../../constants/sizes");
82
+ var ThemeProvider_1 = __importDefault(require("../../containers/ThemeProvider"));
83
+ var CustomThemeContext_1 = __importDefault(require("../../context/CustomThemeContext"));
84
+ var colors_2 = require("../../helpers/colors");
85
+ var utils_1 = require("../../helpers/utils");
86
+ var useCloneThroughFragments_1 = require("../../hooks/useCloneThroughFragments");
87
+ var useTheme_1 = require("../../hooks/useTheme");
88
+ var styles_1 = require("../../styles");
89
+ var Button_1 = __importDefault(require("../Button"));
90
+ var ControlGroup_1 = __importDefault(require("../ControlGroup"));
91
+ var Effect_1 = require("../Effect");
92
+ var TooltipComponent_1 = require("../TooltipComponent");
93
+ /** The floating lift: contact shadow + ambient shadow, lighter on a light theme. */
94
+ var getLiftShadows = function (theme) {
95
+ var isLight = (0, colors_2.shouldDarken)(theme.main);
96
+ return [
97
+ "0 2px 6px -1px ".concat((0, polished_1.rgba)(colors_1.Colors.DARK, isLight ? 0.12 : 0.4)),
98
+ "0 14px 40px -12px ".concat((0, polished_1.rgba)(colors_1.Colors.DARK, isLight ? 0.22 : 0.6)),
99
+ ];
100
+ };
101
+ exports.StyledButtonRail = (0, styled_components_1.default)(Effect_1.StyledEffect)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: ", ";\n flex-direction: ", ";\n flex-wrap: nowrap;\n flex: ", ";\n width: ", ";\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n padding: ", ";\n border-radius: ", ";\n transition: background-color 0.16s ease, border-color 0.16s ease;\n\n background-color: ", ";\n\n border: ", ";\n\n ", "\n\n ", "\n"], ["\n display: ", ";\n flex-direction: ", ";\n flex-wrap: nowrap;\n flex: ", ";\n width: ", ";\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n padding: ", ";\n border-radius: ", ";\n transition: background-color 0.16s ease, border-color 0.16s ease;\n\n background-color: ", ";\n\n border: ", ";\n\n ", "\n\n ", "\n"])), function (_a) {
102
+ var $fluid = _a.$fluid;
103
+ return ($fluid ? 'flex' : 'inline-flex');
104
+ }, function (_a) {
105
+ var $vertical = _a.$vertical;
106
+ return ($vertical ? 'column' : 'row');
107
+ }, function (_a) {
108
+ var $fluid = _a.$fluid, $fixed = _a.$fixed;
109
+ return ($fixed || !$fluid ? '0 0 auto' : '1 1 auto');
110
+ }, function (_a) {
111
+ var $fluid = _a.$fluid, $fixed = _a.$fixed;
112
+ return ($fluid && !$fixed ? '100%' : 'fit-content');
113
+ }, function (_a) {
114
+ var $padding = _a.$padding;
115
+ return $padding;
116
+ }, function (_a) {
117
+ var $radius = _a.$radius;
118
+ return $radius;
119
+ }, function (_a) {
120
+ var theme = _a.theme, $intent = _a.$intent, $transparent = _a.$transparent, $opacity = _a.$opacity;
121
+ if ($transparent) {
122
+ return 'transparent';
123
+ }
124
+ var base = (0, colors_2.getMainBackgroundColor)(theme);
125
+ var intentColor = $intent ? theme.intents[$intent] : undefined;
126
+ return (0, polished_1.rgba)(intentColor ? (0, polished_1.mix)(0.16, intentColor, base) : base, $opacity);
127
+ }, function (_a) {
128
+ var theme = _a.theme, $intent = _a.$intent, $flat = _a.$flat;
129
+ return $flat
130
+ ? 0
131
+ : "1px solid ".concat((0, colors_2.changeLightness)(($intent && theme.intents[$intent]) || (0, colors_2.getMainBackgroundColor)(theme), 0.08));
132
+ }, function (_a) {
133
+ var $blur = _a.$blur, $opacity = _a.$opacity, $transparent = _a.$transparent;
134
+ return !$transparent &&
135
+ $blur > 0 &&
136
+ $opacity < 1 && (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n backdrop-filter: saturate(140%) blur(", "px);\n -webkit-backdrop-filter: saturate(140%) blur(", "px);\n "], ["\n backdrop-filter: saturate(140%) blur(", "px);\n -webkit-backdrop-filter: saturate(140%) blur(", "px);\n "])), $blur, $blur);
137
+ }, function (_a) {
138
+ var theme = _a.theme, effect = _a.effect, $elevated = _a.$elevated, $raised = _a.$raised, $flat = _a.$flat;
139
+ var shadows = $elevated ? getLiftShadows(theme) : [];
140
+ if ($raised && $flat) {
141
+ shadows.push(styles_1.RAISED_SHADOWS);
142
+ }
143
+ return shadows.length ? (0, Effect_1.withGlow)(theme, effect, shadows.join(', ')) : undefined;
144
+ });
145
+ /** What arrow-key navigation may land on: enabled, tabbable controls. */
146
+ var FOCUSABLE_SELECTOR = [
147
+ 'button:not([disabled])',
148
+ 'a[href]',
149
+ 'input:not([disabled])',
150
+ 'select:not([disabled])',
151
+ 'textarea:not([disabled])',
152
+ '[tabindex]',
153
+ ].join(', ');
154
+ /** Keys a text control needs for its own caret; the rail leaves them alone. */
155
+ var isTextEntry = function (element) {
156
+ return element.isContentEditable ||
157
+ element.tagName === 'TEXTAREA' ||
158
+ element.tagName === 'SELECT' ||
159
+ (element.tagName === 'INPUT' &&
160
+ !['button', 'checkbox', 'radio', 'submit', 'reset'].includes(element.type));
161
+ };
162
+ /** Drops keys whose value is `undefined` — an absent prop, not an undefined one
163
+ * (see the `ReqoreControlGroup` entry in COMPONENTS.md for why it matters). */
164
+ var definedOnly = function (props) {
165
+ return Object.fromEntries(Object.entries(props).filter(function (_a) {
166
+ var value = _a[1];
167
+ return value !== undefined;
168
+ }));
169
+ };
170
+ exports.ReqoreButtonRail = (0, react_1.memo)((0, react_1.forwardRef)(function (_a, ref) {
171
+ var children = _a.children, items = _a.items, vertical = _a.vertical, _b = _a.size, size = _b === void 0 ? 'normal' : _b, gapSize = _a.gapSize, buttonProps = _a.buttonProps, intent = _a.intent, customTheme = _a.customTheme, inheritCustomTheme = _a.inheritCustomTheme, _c = _a.flat, flat = _c === void 0 ? false : _c, minimal = _a.minimal, transparent = _a.transparent, raised = _a.raised, _d = _a.elevated, elevated = _d === void 0 ? true : _d, _e = _a.rounded, rounded = _e === void 0 ? true : _e, radiusSize = _a.radiusSize, _f = _a.padded, padded = _f === void 0 ? true : _f, paddingSize = _a.paddingSize, _g = _a.opacity, opacity = _g === void 0 ? 0.78 : _g, _h = _a.blur, blur = _h === void 0 ? 14 : _h, effect = _a.effect, fluid = _a.fluid, fixed = _a.fixed, disabled = _a.disabled, tooltip = _a.tooltip, responsive = _a.responsive, className = _a.className, onKeyDown = _a.onKeyDown, rest = __rest(_a, ["children", "items", "vertical", "size", "gapSize", "buttonProps", "intent", "customTheme", "inheritCustomTheme", "flat", "minimal", "transparent", "raised", "elevated", "rounded", "radiusSize", "padded", "paddingSize", "opacity", "blur", "effect", "fluid", "fixed", "disabled", "tooltip", "responsive", "className", "onKeyDown"]);
172
+ var theme = (0, useTheme_1.useReqoreTheme)('main', customTheme, undefined, undefined, inheritCustomTheme);
173
+ // The provider below re-publishes the custom theme for the buttons. It must
174
+ // carry an INHERITED one too — publishing `undefined` would cut the buttons
175
+ // off from a theme set further up the tree.
176
+ var parentCustomTheme = (0, use_context_selector_1.useContext)(CustomThemeContext_1.default);
177
+ var cascadedCustomTheme = customTheme !== null && customTheme !== void 0 ? customTheme : (inheritCustomTheme === false ? undefined : parentCustomTheme);
178
+ var isTransparent = !!(transparent || minimal);
179
+ var isFlat = !!(flat || minimal);
180
+ var isPill = rounded !== false && !radiusSize;
181
+ var resolvedGapSize = gapSize !== null && gapSize !== void 0 ? gapSize : (0, utils_1.getOneLessSize)(size);
182
+ // The pill is concentric with its pill buttons — half a button plus the
183
+ // padding around it — rather than `9999px`. Along a row that is the same
184
+ // thing (half the rail's height); down a column of labelled buttons a
185
+ // `9999px` radius would curve the ends into the buttons themselves.
186
+ var radius = (0, react_1.useMemo)(function () {
187
+ if (rounded === false)
188
+ return '0';
189
+ if (radiusSize)
190
+ return "".concat((0, sizes_1.resolveRadius)(size, radiusSize), "px");
191
+ var verticalPadding = padded === false || padded === 'horizontal'
192
+ ? 0
193
+ : sizes_1.PADDING_FROM_SIZE[paddingSize !== null && paddingSize !== void 0 ? paddingSize : size] * 0.75;
194
+ return "".concat(sizes_1.SIZE_TO_PX[size] / 2 + verticalPadding, "px");
195
+ }, [rounded, radiusSize, size, padded, paddingSize]);
196
+ var padding = (0, react_1.useMemo)(function () {
197
+ return (0, utils_1.resolvePadding)({
198
+ padded: padded,
199
+ paddingSize: paddingSize !== null && paddingSize !== void 0 ? paddingSize : size,
200
+ verticalMultiplier: 0.75,
201
+ horizontalMultiplier: 0.75,
202
+ });
203
+ }, [padded, paddingSize, size]);
204
+ // What every button in the rail starts from; its own props win.
205
+ var childDefaults = (0, react_1.useMemo)(function () {
206
+ return definedOnly(__assign({ flat: true, pill: isPill || undefined, rounded: rounded === false ? false : undefined, disabled: disabled || undefined }, buttonProps));
207
+ }, [isPill, rounded, disabled, buttonProps]);
208
+ var clone = (0, useCloneThroughFragments_1.useCloneThroughFragments)(function (props, _index, _realIndex, childType) {
209
+ return typeof childType === 'string' ? props : __assign(__assign({}, childDefaults), definedOnly(props));
210
+ }, [childDefaults]).clone;
211
+ // One flat list: a `responsive` group folds by slicing its children, so
212
+ // the items and the element children must be siblings, not two arrays.
213
+ var content = (0, react_1.useMemo)(function () { return __spreadArray(__spreadArray([], react_1.default.Children.toArray(clone(items === null || items === void 0 ? void 0 : items.map(function (item, index) {
214
+ var _a;
215
+ return ((0, jsx_runtime_1.jsx)(Button_1.default, __assign({}, item), "item-".concat((_a = item.id) !== null && _a !== void 0 ? _a : index)));
216
+ }))), true), react_1.default.Children.toArray(clone(children)), true); }, [items, children, clone]);
217
+ var handleKeyDown = (0, react_1.useCallback)(function (event) {
218
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
219
+ var target = event.target;
220
+ var rail = event.currentTarget;
221
+ // A key pressed inside a portal (a popover a button opened) bubbles
222
+ // through the React tree to here; it is not the rail's to handle.
223
+ if (event.defaultPrevented || !rail.contains(target) || isTextEntry(target)) {
224
+ return;
225
+ }
226
+ var previousKey = vertical ? 'ArrowUp' : 'ArrowLeft';
227
+ var nextKey = vertical ? 'ArrowDown' : 'ArrowRight';
228
+ if (![previousKey, nextKey, 'Home', 'End'].includes(event.key)) {
229
+ return;
230
+ }
231
+ var focusables = Array.from(rail.querySelectorAll(FOCUSABLE_SELECTOR)).filter(function (element) { return element.tabIndex >= 0 && !element.closest('[aria-hidden="true"]'); });
232
+ if (!focusables.length) {
233
+ return;
234
+ }
235
+ var current = focusables.findIndex(function (element) { return element.contains(target); });
236
+ var next;
237
+ switch (event.key) {
238
+ case 'Home':
239
+ next = 0;
240
+ break;
241
+ case 'End':
242
+ next = focusables.length - 1;
243
+ break;
244
+ case nextKey:
245
+ next = current === -1 ? 0 : (current + 1) % focusables.length;
246
+ break;
247
+ default:
248
+ next =
249
+ current === -1
250
+ ? focusables.length - 1
251
+ : (current - 1 + focusables.length) % focusables.length;
252
+ }
253
+ event.preventDefault();
254
+ focusables[next].focus();
255
+ }, [onKeyDown, vertical]);
256
+ return ((0, jsx_runtime_1.jsx)(ThemeProvider_1.default, { theme: theme, customTheme: cascadedCustomTheme, children: (0, jsx_runtime_1.jsx)(TooltipComponent_1.ReqoreTooltipComponent, __assign({ role: 'toolbar', "aria-orientation": vertical ? 'vertical' : 'horizontal', "aria-disabled": disabled || undefined }, rest, { as: 'div', ref: ref, Component: exports.StyledButtonRail, tooltip: tooltip, theme: theme, effect: effect, onKeyDown: handleKeyDown, "$intent": intent, "$flat": isFlat, "$transparent": isTransparent, "$raised": !!raised, "$elevated": elevated && !isTransparent, "$fluid": fluid, "$fixed": fixed, "$vertical": vertical, "$padding": padding, "$radius": radius, "$opacity": opacity, "$blur": blur, className: "".concat(className || '', " reqore-button-rail"), children: (0, jsx_runtime_1.jsx)(ControlGroup_1.default, { className: 'reqore-button-rail-group', vertical: vertical, size: size, gapSize: resolvedGapSize, intent: intent, customTheme: customTheme, minimal: minimal,
257
+ // A column of buttons shares one width — the widest — so the rail
258
+ // reads as one control rather than a ragged stack.
259
+ fluid: fluid || vertical, fixed: fixed, responsive: responsive && !vertical, overflowButtonProps: childDefaults, style: responsive && !vertical ? { flex: '1 1 auto', minWidth: 0 } : undefined, children: content }) })) }));
260
+ }));
261
+ exports.default = exports.ReqoreButtonRail;
262
+ var templateObject_1, templateObject_2;
263
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ButtonRail/index.tsx"],"names":[],"mappings":"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"}
@@ -73,9 +73,31 @@ export interface IReqoreEffectGradient {
73
73
  colors: TReqoreEffectGradientColors;
74
74
  direction?: string;
75
75
  borderColor?: TReqoreEffectColor;
76
+ /**
77
+ * Paint the gradient on the BORDER only and fill the surface with this colour
78
+ * instead — a gradient ring around a plain surface (an "AI is working" rail,
79
+ * a highlighted card). Only honoured on the first gradient, which is the one
80
+ * that draws the border, and only where there is a border to draw on (not on
81
+ * text, and not when `borderColor` is set). The readable text colour follows
82
+ * the surface; `animate` still flows the ring. The colour may carry an alpha
83
+ * (`'main:darken:1:0.9'`) for a translucent surface.
84
+ */
85
+ surface?: TReqoreEffectColor;
76
86
  animate?: TReqoreEffectGradientAnimationTrigger;
77
87
  animationSpeed?: 1 | 2 | 3 | 4 | 5;
78
88
  }
89
+ export interface IReqoreEffectGlow {
90
+ size?: number;
91
+ color: TReqoreEffectColor;
92
+ inset?: boolean;
93
+ blur?: number;
94
+ opacity?: number;
95
+ /** Horizontal offset in px (a non-text glow). Default 0: centred. */
96
+ x?: number;
97
+ /** Vertical offset in px (a non-text glow). Default 0: centred. */
98
+ y?: number;
99
+ when?: 'always' | 'hover' | 'focus' | 'active';
100
+ }
79
101
  export interface IReqoreEffect extends IReqoreEffectFilters {
80
102
  /**
81
103
  * Background gradient applied to the element. Accepts either a single gradient
@@ -125,14 +147,15 @@ export interface IReqoreEffect extends IReqoreEffectFilters {
125
147
  * wrong.
126
148
  */
127
149
  borderStyle?: 'solid' | 'dashed' | 'dotted';
128
- glow?: {
129
- size?: number;
130
- color: TReqoreEffectColor;
131
- inset?: boolean;
132
- blur?: number;
133
- opacity?: number;
134
- when?: 'always' | 'hover' | 'focus' | 'active';
135
- };
150
+ /**
151
+ * A glow around the element — or a list of them, painted together (the first
152
+ * is on top). A list is how a surface gets a two-tone glow: one colour to the
153
+ * left (`x: -14`), another to the right (`x: 14`). The trigger (`when`) is the
154
+ * FIRST glow's; a text glow only paints the first. Because it may be a list,
155
+ * code that reads a glow back must not reach into `effect.glow.color`
156
+ * directly — use `getPrimaryGlow(effect.glow)` / `normalizeGlows(effect.glow)`.
157
+ */
158
+ glow?: IReqoreEffectGlow | IReqoreEffectGlow[];
136
159
  frost?: boolean | {
137
160
  color?: TReqoreEffectColor;
138
161
  opacity?: number;
@@ -171,6 +194,19 @@ export declare const patchPrimaryGradient: (gradient: IReqoreEffectGradient | IR
171
194
  * applies here as it does to a text glow.
172
195
  */
173
196
  export declare const getGlowBoxShadow: (theme: IReqoreTheme, glow: NonNullable<IReqoreEffect["glow"]>) => string;
197
+ /** Every glow in `effect.glow`, whether it was given as one or as a list. */
198
+ export declare const normalizeGlows: (glow?: IReqoreEffectGlow | IReqoreEffectGlow[]) => IReqoreEffectGlow[];
199
+ /** The first glow: the one whose `when` triggers the list, and the one a text glow paints. */
200
+ export declare const getPrimaryGlow: (glow?: IReqoreEffectGlow | IReqoreEffectGlow[]) => IReqoreEffectGlow | undefined;
201
+ /**
202
+ * `box-shadow` rules for a surface that paints shadow layers of its own (a
203
+ * raised highlight, an inset ring, a floating lift) AND may carry an effect
204
+ * glow. `StyledEffect` paints the glow as a `box-shadow` too, so the surface's
205
+ * later declaration would win and the glow would never show — the two are
206
+ * composed into one declaration instead, under the glow's own trigger state
207
+ * when it has one. Shared by `ReqoreNavRail` and `ReqoreButtonRail`.
208
+ */
209
+ export declare const withGlow: (theme: IReqoreTheme, effect: IReqoreEffect | undefined, own: string) => any;
174
210
  export declare const StyledEffect: any;
175
211
  export declare const StyledTextEffect: any;
176
212
  export declare const ReqoreEffect: ({ children, ...rest }: IReqoreTextEffectProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Effect/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Effect/index.tsx"],"names":[],"mappings":"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"}