@qoretechnologies/reqore 0.78.10 → 0.78.11-pr.723.g4423093
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/dist/components/Accordion/index.d.ts.map +1 -1
- package/dist/components/Accordion/index.js +60 -14
- package/dist/components/Accordion/index.js.map +1 -1
- package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/index.js +58 -21
- package/dist/components/Breadcrumbs/index.js.map +1 -1
- package/dist/components/Bubble/index.d.ts.map +1 -1
- package/dist/components/Bubble/index.js +13 -4
- package/dist/components/Bubble/index.js.map +1 -1
- package/dist/components/Button/index.d.ts +67 -0
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.js +238 -98
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Callout/index.d.ts.map +1 -1
- package/dist/components/Callout/index.js +49 -29
- package/dist/components/Callout/index.js.map +1 -1
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.js +112 -36
- package/dist/components/Checkbox/index.js.map +1 -1
- package/dist/components/CollapsibleContent/index.d.ts.map +1 -1
- package/dist/components/CollapsibleContent/index.js +6 -2
- package/dist/components/CollapsibleContent/index.js.map +1 -1
- package/dist/components/ControlGroup/index.d.ts.map +1 -1
- package/dist/components/ControlGroup/index.js +22 -1
- package/dist/components/ControlGroup/index.js.map +1 -1
- package/dist/components/DataView/index.d.ts.map +1 -1
- package/dist/components/DataView/index.js +13 -10
- package/dist/components/DataView/index.js.map +1 -1
- package/dist/components/DescriptionList/index.d.ts.map +1 -1
- package/dist/components/DescriptionList/index.js +30 -4
- package/dist/components/DescriptionList/index.js.map +1 -1
- package/dist/components/Drawer/index.d.ts.map +1 -1
- package/dist/components/Drawer/index.js +41 -25
- package/dist/components/Drawer/index.js.map +1 -1
- package/dist/components/Dropdown/list.d.ts.map +1 -1
- package/dist/components/Dropdown/list.js +19 -14
- package/dist/components/Dropdown/list.js.map +1 -1
- package/dist/components/Effect/index.d.ts +37 -0
- package/dist/components/Effect/index.d.ts.map +1 -1
- package/dist/components/Effect/index.js +224 -58
- package/dist/components/Effect/index.js.map +1 -1
- package/dist/components/EntityRow/index.d.ts.map +1 -1
- package/dist/components/EntityRow/index.js +98 -59
- package/dist/components/EntityRow/index.js.map +1 -1
- package/dist/components/FeatureCard/index.d.ts.map +1 -1
- package/dist/components/FeatureCard/index.js +54 -21
- package/dist/components/FeatureCard/index.js.map +1 -1
- package/dist/components/Header/index.d.ts.map +1 -1
- package/dist/components/Header/index.js +7 -4
- package/dist/components/Header/index.js.map +1 -1
- package/dist/components/Icon/index.d.ts.map +1 -1
- package/dist/components/Icon/index.js +13 -3
- package/dist/components/Icon/index.js.map +1 -1
- package/dist/components/Input/index.d.ts +44 -1
- package/dist/components/Input/index.d.ts.map +1 -1
- package/dist/components/Input/index.js +89 -23
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/InputClearButton/index.d.ts +7 -2
- package/dist/components/InputClearButton/index.d.ts.map +1 -1
- package/dist/components/InputClearButton/index.js +12 -5
- package/dist/components/InputClearButton/index.js.map +1 -1
- package/dist/components/InternalPopover/index.d.ts.map +1 -1
- package/dist/components/InternalPopover/index.js +19 -10
- package/dist/components/InternalPopover/index.js.map +1 -1
- package/dist/components/Link/index.d.ts.map +1 -1
- package/dist/components/Link/index.js +6 -1
- package/dist/components/Link/index.js.map +1 -1
- package/dist/components/Menu/divider.d.ts.map +1 -1
- package/dist/components/Menu/divider.js +8 -3
- package/dist/components/Menu/divider.js.map +1 -1
- package/dist/components/Menu/index.d.ts.map +1 -1
- package/dist/components/Menu/index.js +17 -4
- package/dist/components/Menu/index.js.map +1 -1
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +20 -4
- package/dist/components/Message/index.js.map +1 -1
- package/dist/components/NavRail/index.d.ts +2 -0
- package/dist/components/NavRail/index.d.ts.map +1 -1
- package/dist/components/NavRail/index.js +120 -40
- package/dist/components/NavRail/index.js.map +1 -1
- package/dist/components/Notifications/notification.d.ts +6 -2
- package/dist/components/Notifications/notification.d.ts.map +1 -1
- package/dist/components/Notifications/notification.js +78 -18
- package/dist/components/Notifications/notification.js.map +1 -1
- package/dist/components/Notifications/styles.d.ts +20 -0
- package/dist/components/Notifications/styles.d.ts.map +1 -1
- package/dist/components/Notifications/styles.js +37 -9
- package/dist/components/Notifications/styles.js.map +1 -1
- package/dist/components/Panel/index.d.ts +3 -0
- package/dist/components/Panel/index.d.ts.map +1 -1
- package/dist/components/Panel/index.js +214 -153
- package/dist/components/Panel/index.js.map +1 -1
- package/dist/components/Paragraph/index.d.ts.map +1 -1
- package/dist/components/Paragraph/index.js +8 -5
- package/dist/components/Paragraph/index.js.map +1 -1
- package/dist/components/Progress/index.d.ts.map +1 -1
- package/dist/components/Progress/index.js +1 -1
- package/dist/components/Progress/index.js.map +1 -1
- package/dist/components/Rating/index.d.ts.map +1 -1
- package/dist/components/Rating/index.js +20 -8
- package/dist/components/Rating/index.js.map +1 -1
- package/dist/components/RichTextEditor/index.d.ts.map +1 -1
- package/dist/components/RichTextEditor/index.js +89 -46
- package/dist/components/RichTextEditor/index.js.map +1 -1
- package/dist/components/SegmentedControl/index.d.ts.map +1 -1
- package/dist/components/SegmentedControl/index.js +87 -42
- package/dist/components/SegmentedControl/index.js.map +1 -1
- package/dist/components/SeverityRow/index.d.ts.map +1 -1
- package/dist/components/SeverityRow/index.js +1 -1
- package/dist/components/SeverityRow/index.js.map +1 -1
- package/dist/components/Span/index.d.ts.map +1 -1
- package/dist/components/Span/index.js +8 -5
- package/dist/components/Span/index.js.map +1 -1
- package/dist/components/StackedBar/index.d.ts.map +1 -1
- package/dist/components/StackedBar/index.js +42 -12
- package/dist/components/StackedBar/index.js.map +1 -1
- package/dist/components/Statistic/index.d.ts.map +1 -1
- package/dist/components/Statistic/index.js +34 -6
- package/dist/components/Statistic/index.js.map +1 -1
- package/dist/components/Table/cell.d.ts.map +1 -1
- package/dist/components/Table/cell.js +72 -41
- package/dist/components/Table/cell.js.map +1 -1
- package/dist/components/Table/headerCell.d.ts.map +1 -1
- package/dist/components/Table/headerCell.js +7 -5
- package/dist/components/Table/headerCell.js.map +1 -1
- package/dist/components/Tag/index.d.ts +70 -3
- package/dist/components/Tag/index.d.ts.map +1 -1
- package/dist/components/Tag/index.js +233 -67
- package/dist/components/Tag/index.js.map +1 -1
- package/dist/components/Testimonial/index.d.ts.map +1 -1
- package/dist/components/Testimonial/index.js +35 -20
- package/dist/components/Testimonial/index.js.map +1 -1
- package/dist/components/Textarea/index.d.ts +6 -0
- package/dist/components/Textarea/index.d.ts.map +1 -1
- package/dist/components/Textarea/index.js +20 -20
- package/dist/components/Textarea/index.js.map +1 -1
- package/dist/components/Timeline/index.d.ts +2 -0
- package/dist/components/Timeline/index.d.ts.map +1 -1
- package/dist/components/Timeline/index.js +56 -13
- package/dist/components/Timeline/index.js.map +1 -1
- package/dist/components/Tree/index.d.ts.map +1 -1
- package/dist/components/Tree/index.js +24 -20
- package/dist/components/Tree/index.js.map +1 -1
- package/dist/containers/UIProvider.d.ts +10 -0
- package/dist/containers/UIProvider.d.ts.map +1 -1
- package/dist/containers/UIProvider.js +33 -4
- package/dist/containers/UIProvider.js.map +1 -1
- package/dist/context/SurfaceContext.d.ts +18 -0
- package/dist/context/SurfaceContext.d.ts.map +1 -0
- package/dist/context/SurfaceContext.js +39 -0
- package/dist/context/SurfaceContext.js.map +1 -0
- package/dist/helpers/colors.d.ts +184 -2
- package/dist/helpers/colors.d.ts.map +1 -1
- package/dist/helpers/colors.js +739 -86
- package/dist/helpers/colors.js.map +1 -1
- package/dist/helpers/iconProps.d.ts +14 -0
- package/dist/helpers/iconProps.d.ts.map +1 -0
- package/dist/helpers/iconProps.js +33 -0
- package/dist/helpers/iconProps.js.map +1 -0
- package/dist/helpers/surface.d.ts +31 -0
- package/dist/helpers/surface.d.ts.map +1 -0
- package/dist/helpers/surface.js +87 -0
- package/dist/helpers/surface.js.map +1 -0
- package/dist/hooks/useDrawnSurface.d.ts +38 -0
- package/dist/hooks/useDrawnSurface.d.ts.map +1 -0
- package/dist/hooks/useDrawnSurface.js +48 -0
- package/dist/hooks/useDrawnSurface.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/vitest.config.ts +10 -0
- package/tests.json +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TSizes } from '../../constants/sizes';
|
|
3
3
|
import { IReqoreCustomTheme, IReqoreTheme, TReqoreIntent } from '../../constants/theme';
|
|
4
|
+
import { TReqoreSurface } from '../../helpers/colors';
|
|
4
5
|
import { TReqoreKeyboardShortcut } from '../../helpers/shortcuts';
|
|
5
6
|
import { TReqoreStylePropKeys } from '../../helpers/styled';
|
|
6
7
|
import { IReqoreDisabled, IReqoreIntent, IReqoreReadOnly, IWithReqoreEffect, IWithReqoreLoading, IWithReqoreSize, TReqoreTooltipProp } from '../../types/global';
|
|
@@ -145,11 +146,77 @@ export interface IReqoreButtonProps extends React.HTMLAttributes<HTMLButtonEleme
|
|
|
145
146
|
}
|
|
146
147
|
export interface IReqoreButtonStyle extends IReqoreButtonProps {
|
|
147
148
|
theme: IReqoreTheme;
|
|
149
|
+
/** What the button is drawn on (`useReqoreSurface`): the theme's surface when not known. */
|
|
150
|
+
$surface?: TReqoreSurface;
|
|
148
151
|
animate?: boolean;
|
|
149
152
|
color?: TReqoreHexColor;
|
|
150
153
|
/** Rendered as an `<a>`: no underline from the browser's link style. */
|
|
151
154
|
$isLink?: boolean;
|
|
155
|
+
/** What the button is painted with, worked out once per render (`getButtonPaint`). */
|
|
156
|
+
$paint?: IReqoreButtonPaint;
|
|
152
157
|
}
|
|
158
|
+
/** A button at rest, under the pointer, or pressed (`active`). */
|
|
159
|
+
type TReqoreButtonState = 'rest' | 'hover' | 'active';
|
|
160
|
+
/** What a button's colors are worked out from. */
|
|
161
|
+
type TReqoreButtonColorProps = Pick<IReqoreButtonStyle, 'theme' | 'color' | 'minimal' | 'transparent' | 'effect' | '$surface'>;
|
|
162
|
+
interface IReqoreButtonColors {
|
|
163
|
+
/** What the button is drawn on, as the browser draws it: one color, or each color of its gradient. */
|
|
164
|
+
backgrounds: TReqoreHexColor[];
|
|
165
|
+
/** Its text, which stands out from every one of them. */
|
|
166
|
+
text: TReqoreHexColor;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* What a button is drawn on and in, in a state. The background as it is drawn: a minimal button's wash and a
|
|
170
|
+
* translucent color (the muted intent) blended over the theme the button sits on, a transparent button as that
|
|
171
|
+
* theme, a gradient as each of its colors. The text is picked against that, and stands out from all of it by 4.5:1;
|
|
172
|
+
* a minimal or transparent button with a color of its own keeps the color in its text, in a shade that reads.
|
|
173
|
+
*/
|
|
174
|
+
export declare const getButtonColors: ({ theme, color, minimal, transparent, effect, $surface }: TReqoreButtonColorProps, state?: TReqoreButtonState) => IReqoreButtonColors;
|
|
175
|
+
/** A button's colors in each state it is drawn in: at rest, hovered (when it is not active), and active. */
|
|
176
|
+
export interface IReqoreButtonStateColors {
|
|
177
|
+
rest: IReqoreButtonColors;
|
|
178
|
+
hover?: IReqoreButtonColors;
|
|
179
|
+
active?: IReqoreButtonColors;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* How a button draws an icon, at rest and hovered alike: in its own color (`color`, in a shade that stands out by
|
|
183
|
+
* 3:1) or the button's text color, at `CONTROL_ICON_OPACITY` or as much more as it needs to stand out by 3:1.
|
|
184
|
+
*/
|
|
185
|
+
export declare const getButtonIconLook: (style: TReqoreButtonColorProps, color?: TReqoreEffectColor, active?: boolean) => {
|
|
186
|
+
color?: TReqoreHexColor;
|
|
187
|
+
opacity: number;
|
|
188
|
+
};
|
|
189
|
+
/** What a button's styles paint it with, worked out once per render (`getButtonPaint`), not in each style rule. */
|
|
190
|
+
export interface IReqoreButtonPaint {
|
|
191
|
+
/** Its fill and text at rest. */
|
|
192
|
+
background: string;
|
|
193
|
+
text: TReqoreHexColor;
|
|
194
|
+
/** Its color a step lighter: the edge (`flat={false}`), the focus ring and an active button's fill. */
|
|
195
|
+
edge: string;
|
|
196
|
+
/** The ring drawn while it is hovered or pressed, and its edge then. */
|
|
197
|
+
ring: string;
|
|
198
|
+
/** Hovered (not when active): its fill and text. */
|
|
199
|
+
hoverBackground?: string;
|
|
200
|
+
hoverText?: TReqoreHexColor;
|
|
201
|
+
/** Active (a selected menu item): its text and edge, at rest and hovered. */
|
|
202
|
+
activeText?: TReqoreHexColor;
|
|
203
|
+
activeEdge: string;
|
|
204
|
+
activeHoverEdge: string;
|
|
205
|
+
/** The description's color, faded as far as it still reads (with a description only). */
|
|
206
|
+
description?: string;
|
|
207
|
+
/** Hovered (not when active): the description's color, faded as far as it reads on the hover fill. */
|
|
208
|
+
hoverDescription?: string;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* A button's colors in the states it is drawn in (`IReqoreButtonStateColors`): at rest, and hovered or - when it
|
|
212
|
+
* is `active` - active.
|
|
213
|
+
*/
|
|
214
|
+
export declare const getButtonStateColors: (style: TReqoreButtonColorProps, active?: boolean) => IReqoreButtonStateColors;
|
|
215
|
+
/**
|
|
216
|
+
* Everything a button is painted with (`IReqoreButtonPaint`), from its colors in each state. `description`: whether
|
|
217
|
+
* it has one, whose color is then worked out too.
|
|
218
|
+
*/
|
|
219
|
+
export declare const getButtonPaint: (style: TReqoreButtonColorProps, states: IReqoreButtonStateColors, description?: boolean) => IReqoreButtonPaint;
|
|
153
220
|
export declare const StyledAnimatedTextWrapper: any;
|
|
154
221
|
/**
|
|
155
222
|
* Every button prop that only styles the button. None of them reaches the rendered element —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -71,11 +71,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
71
71
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
72
72
|
};
|
|
73
73
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
74
|
-
exports.ButtonBadge = exports.StyledButtonContent = exports.StyledButton = exports.REQORE_BUTTON_STYLE_PROPS = exports.StyledAnimatedTextWrapper = exports.StyledButtonIndicator = void 0;
|
|
74
|
+
exports.ButtonBadge = exports.StyledButtonContent = exports.StyledButton = exports.REQORE_BUTTON_STYLE_PROPS = exports.StyledAnimatedTextWrapper = exports.getButtonPaint = exports.getButtonStateColors = exports.getButtonIconLook = exports.getButtonColors = exports.StyledButtonIndicator = void 0;
|
|
75
75
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
76
76
|
var useMarqueeOnHover_1 = require("../../hooks/useMarqueeOnHover");
|
|
77
77
|
var lodash_1 = require("lodash");
|
|
78
|
-
var polished_1 = require("polished");
|
|
79
78
|
var react_1 = require("react");
|
|
80
79
|
var react_hotkeys_hook_1 = require("react-hotkeys-hook");
|
|
81
80
|
var styled_components_1 = require("styled-components");
|
|
@@ -89,9 +88,11 @@ var useCombinedRefs_1 = require("../../hooks/useCombinedRefs");
|
|
|
89
88
|
var useReqoreContext_1 = require("../../hooks/useReqoreContext");
|
|
90
89
|
var useReqoreEffect_1 = require("../../hooks/useReqoreEffect");
|
|
91
90
|
var useTheme_1 = require("../../hooks/useTheme");
|
|
91
|
+
var SurfaceContext_1 = require("../../context/SurfaceContext");
|
|
92
92
|
var styles_1 = require("../../styles");
|
|
93
93
|
var Effect_1 = require("../Effect");
|
|
94
94
|
var Icon_1 = __importDefault(require("../Icon"));
|
|
95
|
+
var iconProps_1 = require("../../helpers/iconProps");
|
|
95
96
|
var KeyboardShortcut_1 = require("../KeyboardShortcut");
|
|
96
97
|
var Spacer_1 = require("../Spacer");
|
|
97
98
|
var Tag_1 = __importDefault(require("../Tag"));
|
|
@@ -126,13 +127,147 @@ var getButtonMainColor = function (theme, color, effect) {
|
|
|
126
127
|
}
|
|
127
128
|
return theme.main;
|
|
128
129
|
};
|
|
129
|
-
|
|
130
|
-
|
|
130
|
+
/**
|
|
131
|
+
* What a button is drawn on and in, in a state. The background as it is drawn: a minimal button's wash and a
|
|
132
|
+
* translucent color (the muted intent) blended over the theme the button sits on, a transparent button as that
|
|
133
|
+
* theme, a gradient as each of its colors. The text is picked against that, and stands out from all of it by 4.5:1;
|
|
134
|
+
* a minimal or transparent button with a color of its own keeps the color in its text, in a shade that reads.
|
|
135
|
+
*/
|
|
136
|
+
var getButtonColors = function (_a, state) {
|
|
137
|
+
var theme = _a.theme, color = _a.color, minimal = _a.minimal, transparent = _a.transparent, effect = _a.effect, $surface = _a.$surface;
|
|
138
|
+
if (state === void 0) { state = 'rest'; }
|
|
139
|
+
var main = getButtonMainColor(theme, color, effect);
|
|
140
|
+
// what the button is drawn on: one color, or each color of a gradient
|
|
141
|
+
var unders = (0, colors_2.getThemeSurfaces)(theme, $surface);
|
|
142
|
+
var outlined = minimal || transparent;
|
|
143
|
+
var gradient = (0, Effect_1.getPrimaryGradient)(effect === null || effect === void 0 ? void 0 : effect.gradient);
|
|
144
|
+
// an outlined button's text starts from a light tint of its color, lighter hovered
|
|
145
|
+
var tintAmount = state === 'hover' ? 0.9 : 0.8;
|
|
146
|
+
var fills;
|
|
147
|
+
if (gradient && !transparent) {
|
|
148
|
+
var stops = (0, colors_2.getGradientColorList)(theme, gradient.colors);
|
|
149
|
+
if (minimal) {
|
|
150
|
+
// as a minimal gradient is painted: a translucent fill over a translucent ring over the button's wash
|
|
151
|
+
var painted = unders.flatMap(function (under) {
|
|
152
|
+
return (0, Effect_1.getEffectGradientBackgrounds)(theme, gradient.colors, true, (0, colors_2.getColorAtAlpha)(main, 0.2), under);
|
|
153
|
+
});
|
|
154
|
+
return {
|
|
155
|
+
backgrounds: painted,
|
|
156
|
+
text: (0, colors_2.isAchromatic)(main)
|
|
157
|
+
? (0, colors_2.getReadableColorOn)(painted, state === 'rest')
|
|
158
|
+
: (0, colors_2.getReadableAccentColorOn)((0, colors_2.getSaturatedTint)(main, tintAmount), painted),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
// as the effect draws it: its colors at rest, each a step lighter hovered or pressed
|
|
162
|
+
fills = state === 'rest' ? stops : stops.map(function (stop) { return (0, colors_2.changeLightness)(stop, 0.05); });
|
|
163
|
+
}
|
|
164
|
+
else if (state === 'active') {
|
|
165
|
+
fills = [(0, colors_2.changeLightness)(main, 0.1)];
|
|
166
|
+
}
|
|
167
|
+
else if (state === 'hover') {
|
|
168
|
+
fills = [getButtonHoverFill(theme, color, main, minimal, transparent)];
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
fills = [getButtonRestFill(color, main, minimal, transparent)];
|
|
172
|
+
}
|
|
173
|
+
var backgrounds = unders.flatMap(function (under) {
|
|
174
|
+
return fills.map(function (fill) { return (fill === 'transparent' ? under : (0, colors_2.getDrawnColor)(fill, under)); });
|
|
175
|
+
});
|
|
176
|
+
var dim = state === 'rest';
|
|
177
|
+
var text;
|
|
178
|
+
if (outlined && state !== 'active' && !(0, colors_2.isAchromatic)(main)) {
|
|
179
|
+
// a color the helpers cannot read (a CSS variable) is as it is given: the text is written in it
|
|
180
|
+
text = (0, colors_2.getReadableAccentColorOn)((0, colors_2.getSaturatedTint)(main, tintAmount), backgrounds);
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
text = (0, colors_2.getReadableColorOn)(backgrounds, dim);
|
|
184
|
+
}
|
|
185
|
+
return { backgrounds: backgrounds, text: text };
|
|
186
|
+
};
|
|
187
|
+
exports.getButtonColors = getButtonColors;
|
|
188
|
+
/**
|
|
189
|
+
* The fill a button paints at rest: nothing when transparent, a wash of its color when minimal (one the helpers
|
|
190
|
+
* cannot read, a CSS variable, is washed by the browser), else its color.
|
|
191
|
+
*/
|
|
192
|
+
var getButtonRestFill = function (color, main, minimal, transparent) { return (transparent ? 'transparent' : minimal ? (0, colors_2.getColorAtAlpha)(main, 0.2) : color || main); };
|
|
193
|
+
/** The fill a button paints hovered: a stronger wash when minimal or transparent, else its color a step lighter. */
|
|
194
|
+
var getButtonHoverFill = function (theme, color, main, minimal, transparent) {
|
|
131
195
|
return minimal || transparent
|
|
132
|
-
? (0, colors_2.
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
196
|
+
? (0, colors_2.getColorAtAlpha)((0, colors_2.changeLightness)(main, 0.1), transparent ? 0.2 : 0.4)
|
|
197
|
+
: (0, colors_2.changeLightness)(getButtonMainColor(theme, color), 0.05);
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* How a button draws an icon, at rest and hovered alike: in its own color (`color`, in a shade that stands out by
|
|
201
|
+
* 3:1) or the button's text color, at `CONTROL_ICON_OPACITY` or as much more as it needs to stand out by 3:1.
|
|
202
|
+
*/
|
|
203
|
+
var getButtonIconLook = function (style, color, active) {
|
|
204
|
+
return getButtonIconLookIn(style.theme, (0, exports.getButtonStateColors)(style, active), color);
|
|
205
|
+
};
|
|
206
|
+
exports.getButtonIconLook = getButtonIconLook;
|
|
207
|
+
/** `getButtonIconLook`, from the button's colors worked out already (`IReqoreButtonStateColors`). */
|
|
208
|
+
var getButtonIconLookIn = function (theme, states, color) {
|
|
209
|
+
var _a, _b, _c;
|
|
210
|
+
// an active button (a selected menu item) is drawn in its fill, hovered or not
|
|
211
|
+
var rest = (_a = states.active) !== null && _a !== void 0 ? _a : states.rest;
|
|
212
|
+
var hover = (_c = (_b = states.active) !== null && _b !== void 0 ? _b : states.hover) !== null && _c !== void 0 ? _c : rest;
|
|
213
|
+
var look = (0, colors_2.getReadableIconLook)(theme, __spreadArray(__spreadArray([], rest.backgrounds, true), hover.backgrounds, true), rest.text, colors_1.CONTROL_ICON_OPACITY, color);
|
|
214
|
+
// hovered, the text (which an icon without a color of its own is drawn in) may be another color
|
|
215
|
+
return look.color
|
|
216
|
+
? look
|
|
217
|
+
: {
|
|
218
|
+
opacity: Math.max(look.opacity, (0, colors_2.getReadableAlpha)(hover.text, hover.backgrounds, colors_1.CONTROL_ICON_OPACITY, colors_2.READABLE_ICON_CONTRAST)),
|
|
219
|
+
};
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* A button's colors in the states it is drawn in (`IReqoreButtonStateColors`): at rest, and hovered or - when it
|
|
223
|
+
* is `active` - active.
|
|
224
|
+
*/
|
|
225
|
+
var getButtonStateColors = function (style, active) { return ({
|
|
226
|
+
rest: (0, exports.getButtonColors)(style),
|
|
227
|
+
hover: active ? undefined : (0, exports.getButtonColors)(style, 'hover'),
|
|
228
|
+
active: active ? (0, exports.getButtonColors)(style, 'active') : undefined,
|
|
229
|
+
}); };
|
|
230
|
+
exports.getButtonStateColors = getButtonStateColors;
|
|
231
|
+
/**
|
|
232
|
+
* Everything a button is painted with (`IReqoreButtonPaint`), from its colors in each state. `description`: whether
|
|
233
|
+
* it has one, whose color is then worked out too.
|
|
234
|
+
*/
|
|
235
|
+
var getButtonPaint = function (style, states, description) {
|
|
236
|
+
var _a, _b, _c;
|
|
237
|
+
var theme = style.theme, color = style.color, minimal = style.minimal, transparent = style.transparent, effect = style.effect;
|
|
238
|
+
var main = getButtonMainColor(theme, color, effect);
|
|
239
|
+
var drawn = (_a = states.active) !== null && _a !== void 0 ? _a : states.rest;
|
|
240
|
+
return {
|
|
241
|
+
background: transparent ? 'transparent' : minimal ? (0, colors_2.getColorAtAlpha)(main, 0.2) : color,
|
|
242
|
+
text: states.rest.text,
|
|
243
|
+
edge: (0, colors_2.changeLightness)(main, 0.1),
|
|
244
|
+
ring: (0, colors_2.changeLightness)(main, 0.25),
|
|
245
|
+
hoverBackground: states.hover
|
|
246
|
+
? getButtonHoverFill(theme, color, main, minimal, transparent)
|
|
247
|
+
: undefined,
|
|
248
|
+
hoverText: (_b = states.hover) === null || _b === void 0 ? void 0 : _b.text,
|
|
249
|
+
activeText: (_c = states.active) === null || _c === void 0 ? void 0 : _c.text,
|
|
250
|
+
activeEdge: (0, colors_2.changeLightness)(main, 0.175),
|
|
251
|
+
activeHoverEdge: (0, colors_2.changeLightness)(main, 0.275),
|
|
252
|
+
// on the button as it is drawn: at rest, or filled when active (a selected menu item)
|
|
253
|
+
description: description
|
|
254
|
+
? (0, colors_2.getReadableFadedColor)(drawn.text, drawn.backgrounds, 0.7)
|
|
255
|
+
: undefined,
|
|
256
|
+
/* hovered, the description is on the hover fill, in the hovered text: faded as far as it reads there. Faded for
|
|
257
|
+
the resting fill, it fell to 3.8:1 on an info button's lighter hover fill (qorus#646) */
|
|
258
|
+
hoverDescription: description && states.hover
|
|
259
|
+
? (0, colors_2.getReadableFadedColor)(states.hover.text, states.hover.backgrounds, 0.7)
|
|
260
|
+
: undefined,
|
|
261
|
+
};
|
|
262
|
+
};
|
|
263
|
+
exports.getButtonPaint = getButtonPaint;
|
|
264
|
+
/**
|
|
265
|
+
* What a styled button is painted with: what the button worked out for this render, or - a `StyledButton`
|
|
266
|
+
* rendered on its own - worked out from its props.
|
|
267
|
+
*/
|
|
268
|
+
var getStyledButtonPaint = function (props) {
|
|
269
|
+
var _a;
|
|
270
|
+
return (_a = props.$paint) !== null && _a !== void 0 ? _a : (0, exports.getButtonPaint)(props, (0, exports.getButtonStateColors)(props, props.active), !!props.description);
|
|
136
271
|
};
|
|
137
272
|
exports.StyledAnimatedTextWrapper = styled_1.default.span(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n min-width: 5px;\n overflow: hidden;\n position: relative;\n text-align: ", ";\n display: flex;\n flex-flow: column;\n align-items: ", ";\n"], ["\n min-width: 5px;\n overflow: hidden;\n position: relative;\n text-align: ", ";\n display: flex;\n flex-flow: column;\n align-items: ", ";\n"])), function (_a) {
|
|
138
273
|
var textAlign = _a.textAlign;
|
|
@@ -201,9 +336,8 @@ exports.StyledButton = (0, styled_1.default)(Effect_1.StyledEffect).withConfig({
|
|
|
201
336
|
// Its own styling props, and the layout flags a containing ControlGroup hands it (`fill`, its
|
|
202
337
|
// place in a stack, ...); `color` is the button's colour, read by its styles.
|
|
203
338
|
shouldForwardProp: styled_1.omitStyleProps.apply(void 0, __spreadArray(__spreadArray(__spreadArray([], exports.REQORE_BUTTON_STYLE_PROPS, false), styled_1.REQORE_CONTROL_GROUP_CHILD_PROPS, false), ['color'], false)),
|
|
204
|
-
})(
|
|
205
|
-
|
|
206
|
-
return !flat ? "1px solid ".concat((0, colors_2.changeLightness)(getButtonMainColor(theme, color, effect), 0.1)) : 0;
|
|
339
|
+
})(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n display: flex;\n flex-flow: column;\n justify-content: center;\n /* The page's font (or the theme's, which the layout sets), not the browser's control font:\n a button left to the user-agent stylesheet renders in the platform's form-control face\n whatever font the text around it is in. */\n font-family: inherit;\n font-weight: 570;\n position: relative;\n overflow: hidden;\n vertical-align: middle;\n border: ", ";\n padding: ", ";\n font-size: ", "px;\n outline-offset: -2px;\n\n min-height: ", "px;\n min-width: ", "px;\n ", "\n /* A button is never wider than its container, unless it sets its own maxWidth: fixed means it does not\n stretch, not that it may run past what holds it. A fixed button saying a value and its description stayed as\n wide as both on one line, 487-712px in a 346px card on a phone (qorus#646); capped, its label is clipped as any\n button's is, and its description takes as many lines as it needs. */\n max-width: ", ";\n\n ", "\n\n flex: ", ";\n flex-shrink: ", ";\n flex-grow: ", ";\n align-self: ", ";\n\n border-radius: ", ";\n\n background-color: ", ";\n\n color: ", ";\n\n ", ";\n\n ", "\n\n ", ";\n\n ", ";\n\n &:disabled {\n ", ";\n }\n\n ", "\n\n &:focus,\n &:active {\n outline: 2px solid ", ";\n border-color: ", ";\n }\n\n .reqore-button-description {\n padding-top: ", "px;\n /* on the button as it is drawn: at rest, or filled when active (a selected menu item) */\n color: ", ";\n }\n"], ["\n display: flex;\n flex-flow: column;\n justify-content: center;\n /* The page's font (or the theme's, which the layout sets), not the browser's control font:\n a button left to the user-agent stylesheet renders in the platform's form-control face\n whatever font the text around it is in. */\n font-family: inherit;\n font-weight: 570;\n position: relative;\n overflow: hidden;\n vertical-align: middle;\n border: ", ";\n padding: ", ";\n font-size: ", "px;\n outline-offset: -2px;\n\n min-height: ", "px;\n min-width: ", "px;\n ", "\n /* A button is never wider than its container, unless it sets its own maxWidth: fixed means it does not\n stretch, not that it may run past what holds it. A fixed button saying a value and its description stayed as\n wide as both on one line, 487-712px in a 346px card on a phone (qorus#646); capped, its label is clipped as any\n button's is, and its description takes as many lines as it needs. */\n max-width: ", ";\n\n ", "\n\n flex: ", ";\n flex-shrink: ", ";\n flex-grow: ", ";\n align-self: ", ";\n\n border-radius: ", ";\n\n background-color: ", ";\n\n color: ", ";\n\n ", ";\n\n ", "\n\n ", ";\n\n ", ";\n\n &:disabled {\n ", ";\n }\n\n ", "\n\n &:focus,\n &:active {\n outline: 2px solid ", ";\n border-color: ", ";\n }\n\n .reqore-button-description {\n padding-top: ", "px;\n /* on the button as it is drawn: at rest, or filled when active (a selected menu item) */\n color: ", ";\n }\n"])), function (props) {
|
|
340
|
+
return !props.flat ? "1px solid ".concat(getStyledButtonPaint(props).edge) : 0;
|
|
207
341
|
}, function (_a) {
|
|
208
342
|
var size = _a.size, compact = _a.compact, _b = _a.verticalPadding, verticalPadding = _b === void 0 ? 'normal' : _b, square = _a.square;
|
|
209
343
|
return "".concat(sizes_1.CONTROL_VERTICAL_PADDING_FROM_SIZE[size] +
|
|
@@ -259,79 +393,43 @@ exports.StyledButton = (0, styled_1.default)(Effect_1.StyledEffect).withConfig({
|
|
|
259
393
|
: circle
|
|
260
394
|
? '9999px'
|
|
261
395
|
: "".concat((0, sizes_1.resolveRadius)(size, radiusSize) * (pill ? sizes_1.PILL_RADIUS_MODIFIER : 1), "px");
|
|
262
|
-
}, function (_a) {
|
|
263
|
-
var minimal = _a.minimal, color = _a.color, theme = _a.theme, transparent = _a.transparent, effect = _a.effect;
|
|
264
|
-
if (transparent) {
|
|
265
|
-
return 'transparent';
|
|
266
|
-
}
|
|
267
|
-
if (minimal) {
|
|
268
|
-
return (0, styled_components_1.css)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n ", "\n "], ["\n ", "\n "])), (0, polished_1.rgba)(getButtonMainColor(theme, color, effect), 0.2));
|
|
269
|
-
}
|
|
270
|
-
return color;
|
|
271
|
-
}, function (_a) {
|
|
272
|
-
var color = _a.color, minimal = _a.minimal, transparent = _a.transparent, theme = _a.theme, effect = _a.effect;
|
|
273
|
-
var finalColor = getButtonMainColor(theme, color, effect);
|
|
274
|
-
return getButtonTextColor({ minimal: minimal, transparent: transparent, color: finalColor, theme: theme });
|
|
275
|
-
}, styles_1.InactiveIconScale, function (_a) {
|
|
396
|
+
}, function (props) { return getStyledButtonPaint(props).background; }, function (props) { return getStyledButtonPaint(props).text; }, styles_1.InactiveIconScale, function (_a) {
|
|
276
397
|
var raised = _a.raised, flat = _a.flat, transparent = _a.transparent;
|
|
277
398
|
return raised && flat && !transparent && styles_1.RaisedElement;
|
|
278
|
-
}, function (
|
|
279
|
-
var readOnly =
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
return minimal || transparent
|
|
293
|
-
? (0, colors_2.isAchromatic)(finalColor)
|
|
294
|
-
? (0, colors_2.getReadableColorFrom)(theme.originalMain)
|
|
295
|
-
: (0, polished_1.saturate)(1, (0, polished_1.tint)(0.9, finalColor))
|
|
296
|
-
: (0, colors_2.getReadableColorFrom)(finalColor);
|
|
297
|
-
}, animate
|
|
298
|
-
? (0, styled_components_1.css)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n cursor: pointer;\n\n ", " {\n transform: translateY(150%);\n filter: blur(10px);\n opacity: 0;\n }\n\n ", " {\n transform: translateY(0px);\n filter: blur(0);\n opacity: 1;\n }\n "], ["\n cursor: pointer;\n\n ", " {\n transform: translateY(150%);\n filter: blur(10px);\n opacity: 0;\n }\n\n ", " {\n transform: translateY(0px);\n filter: blur(0);\n opacity: 1;\n }\n "])), styles_1.StyledInActiveContent, styles_1.StyledActiveContent) : undefined) : readOnly
|
|
299
|
-
? (0, styled_components_1.css)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n ", ";\n "], ["\n ", ";\n "])), styles_1.ReadOnlyElement) : undefined;
|
|
300
|
-
}, function (_a) {
|
|
301
|
-
var active = _a.active, flat = _a.flat, theme = _a.theme, color = _a.color, effect = _a.effect;
|
|
302
|
-
if (active) {
|
|
303
|
-
return (0, styled_components_1.css)(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n cursor: pointer;\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n\n &:hover,\n &:active,\n &:focus {\n border-color: ", ";\n }\n\n ", "\n "], ["\n cursor: pointer;\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n\n &:hover,\n &:active,\n &:focus {\n border-color: ", ";\n }\n\n ", "\n "])), (0, colors_2.changeLightness)(getButtonMainColor(theme, color, effect), 0.1), (0, colors_2.getReadableColor)({ main: (0, colors_2.changeLightness)(getButtonMainColor(theme, color, effect), 0.1) }, undefined, undefined), flat
|
|
304
|
-
? undefined
|
|
305
|
-
: (0, colors_2.changeLightness)(getButtonMainColor(theme, color, effect), 0.175), flat
|
|
306
|
-
? undefined
|
|
307
|
-
: (0, colors_2.changeLightness)(getButtonMainColor(theme, color, effect), 0.275), styles_1.ActiveIconScale);
|
|
399
|
+
}, function (props) {
|
|
400
|
+
var readOnly = props.readOnly, animate = props.animate, active = props.active, flat = props.flat;
|
|
401
|
+
if (readOnly || active) {
|
|
402
|
+
return readOnly
|
|
403
|
+
? (0, styled_components_1.css)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n ", ";\n "], ["\n ", ";\n "])), styles_1.ReadOnlyElement) : undefined;
|
|
404
|
+
}
|
|
405
|
+
var _a = getStyledButtonPaint(props), ring = _a.ring, hoverBackground = _a.hoverBackground, hoverText = _a.hoverText, hoverDescription = _a.hoverDescription;
|
|
406
|
+
return (0, styled_components_1.css)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n &:not(:disabled) {\n ", "\n\n cursor: pointer;\n transition: all 0.2s ease-out;\n\n &:active {\n outline: 3px solid ", ";\n outline-offset: -3px;\n transition: none;\n }\n\n &:hover:not(:active) {\n outline: 2px solid ", ";\n transition: none;\n }\n\n &:hover,\n &:active {\n border-color: ", ";\n background-color: ", ";\n /* Ended here: the animated content's rules below ran on into this declaration, which the\n browser then dropped - a hovered button kept its resting text on its hovered fill. */\n color: ", ";\n\n .reqore-button-description {\n color: ", ";\n }\n\n ", ";\n }\n }\n "], ["\n &:not(:disabled) {\n ", "\n\n cursor: pointer;\n transition: all 0.2s ease-out;\n\n &:active {\n outline: 3px solid ", ";\n outline-offset: -3px;\n transition: none;\n }\n\n &:hover:not(:active) {\n outline: 2px solid ", ";\n transition: none;\n }\n\n &:hover,\n &:active {\n border-color: ", ";\n background-color: ", ";\n /* Ended here: the animated content's rules below ran on into this declaration, which the\n browser then dropped - a hovered button kept its resting text on its hovered fill. */\n color: ", ";\n\n .reqore-button-description {\n color: ", ";\n }\n\n ", ";\n }\n }\n "])), styles_1.ScaleIconOnHover, ring, ring, flat ? undefined : ring, hoverBackground, hoverText, hoverDescription, animate
|
|
407
|
+
? (0, styled_components_1.css)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n cursor: pointer;\n\n ", " {\n transform: translateY(150%);\n filter: blur(10px);\n opacity: 0;\n }\n\n ", " {\n transform: translateY(0px);\n filter: blur(0);\n opacity: 1;\n }\n "], ["\n cursor: pointer;\n\n ", " {\n transform: translateY(150%);\n filter: blur(10px);\n opacity: 0;\n }\n\n ", " {\n transform: translateY(0px);\n filter: blur(0);\n opacity: 1;\n }\n "])), styles_1.StyledInActiveContent, styles_1.StyledActiveContent) : undefined);
|
|
408
|
+
}, function (props) {
|
|
409
|
+
if (props.active) {
|
|
410
|
+
var flat = props.flat;
|
|
411
|
+
var _a = getStyledButtonPaint(props), edge = _a.edge, activeText = _a.activeText, activeEdge = _a.activeEdge, activeHoverEdge = _a.activeHoverEdge;
|
|
412
|
+
return (0, styled_components_1.css)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n cursor: pointer;\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n\n &:hover,\n &:active,\n &:focus {\n border-color: ", ";\n }\n\n ", "\n "], ["\n cursor: pointer;\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n\n &:hover,\n &:active,\n &:focus {\n border-color: ", ";\n }\n\n ", "\n "])), edge, activeText, flat ? undefined : activeEdge, flat ? undefined : activeHoverEdge, styles_1.ActiveIconScale);
|
|
308
413
|
}
|
|
309
414
|
}, styles_1.DisabledElement, function (_a) {
|
|
310
415
|
var $isLink = _a.$isLink;
|
|
311
416
|
return $isLink
|
|
312
|
-
? (0, styled_components_1.css)(
|
|
313
|
-
}, function (
|
|
314
|
-
|
|
315
|
-
return (0, colors_2.changeLightness)(getButtonMainColor(theme, color, effect), 0.1);
|
|
316
|
-
}, function (_a) {
|
|
317
|
-
var minimal = _a.minimal, theme = _a.theme, color = _a.color, effect = _a.effect;
|
|
318
|
-
return minimal ? undefined : (0, colors_2.changeLightness)(getButtonMainColor(theme, color, effect), 0.1);
|
|
417
|
+
? (0, styled_components_1.css)(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n text-decoration: none;\n\n /* A link has no :disabled; a disabled one says so with aria-disabled. */\n &[aria-disabled='true'] {\n ", ";\n }\n "], ["\n text-decoration: none;\n\n /* A link has no :disabled; a disabled one says so with aria-disabled. */\n &[aria-disabled='true'] {\n ", ";\n }\n "])), styles_1.DisabledElement) : undefined;
|
|
418
|
+
}, function (props) { return getStyledButtonPaint(props).edge; }, function (props) {
|
|
419
|
+
return props.minimal ? undefined : getStyledButtonPaint(props).edge;
|
|
319
420
|
}, function (_a) {
|
|
320
421
|
var size = _a.size;
|
|
321
422
|
return sizes_1.PADDING_FROM_SIZE[size] / 2;
|
|
322
|
-
}, function (
|
|
323
|
-
var theme = _a.theme, color = _a.color, minimal = _a.minimal, transparent = _a.transparent;
|
|
324
|
-
return (0, polished_1.rgba)(getButtonTextColor({ minimal: minimal, transparent: transparent, color: color, theme: theme }), 0.7);
|
|
325
|
-
});
|
|
423
|
+
}, function (props) { return getStyledButtonPaint(props).description; });
|
|
326
424
|
exports.StyledButtonContent = styled_1.default.div.withConfig({
|
|
327
425
|
shouldForwardProp: (0, styled_1.omitStyleProps)('wrap'),
|
|
328
|
-
})(
|
|
426
|
+
})(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n min-width: ", "px;\n flex: 1;\n flex-shrink: 0;\n\n ", "\n"], ["\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n min-width: ", "px;\n flex: 1;\n flex-shrink: 0;\n\n ", "\n"])), function (_a) {
|
|
329
427
|
var size = _a.size;
|
|
330
428
|
return sizes_1.ICON_FROM_SIZE[size];
|
|
331
429
|
}, function (_a) {
|
|
332
430
|
var wrap = _a.wrap, description = _a.description;
|
|
333
431
|
return !wrap && !description
|
|
334
|
-
? (0, styled_components_1.css)(
|
|
432
|
+
? (0, styled_components_1.css)(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n max-height: ", "px;\n "], ["\n max-height: ", "px;\n "])), function (_a) {
|
|
335
433
|
var size = _a.size;
|
|
336
434
|
return sizes_1.SIZE_TO_PX[size];
|
|
337
435
|
}) : null;
|
|
@@ -384,13 +482,14 @@ exports.ButtonBadge = (0, react_1.memo)(function (_a) {
|
|
|
384
482
|
* Primary Reqore button component that supports intents, icons, and badges.
|
|
385
483
|
*/
|
|
386
484
|
var ReqoreButton = (0, react_1.memo)((0, react_1.forwardRef)(function (_a, ref) {
|
|
387
|
-
var _b, _c, _d;
|
|
388
|
-
var icon = _a.icon,
|
|
485
|
+
var _b, _c, _d, _e, _f, _g;
|
|
486
|
+
var icon = _a.icon, _h = _a.size, size = _h === void 0 ? 'normal' : _h, minimal = _a.minimal, transparent = _a.transparent, children = _a.children, tooltip = _a.tooltip, className = _a.className, fluid = _a.fluid, fixed = _a.fixed, alignSelf = _a.alignSelf, intent = _a.intent, active = _a.active, flat = _a.flat, rightIcon = _a.rightIcon, customTheme = _a.customTheme, wrap = _a.wrap, readOnly = _a.readOnly, badge = _a.badge, indicator = _a.indicator, description = _a.description, maxWidth = _a.maxWidth, textAlignProp = _a.textAlign, effect = _a.effect, labelEffect = _a.labelEffect, descriptionEffect = _a.descriptionEffect, leftIconColor = _a.leftIconColor, rightIconColor = _a.rightIconColor, iconColor = _a.iconColor, iconsAlignProp = _a.iconsAlign, leftIconProps = _a.leftIconProps, rightIconProps = _a.rightIconProps, label = _a.label, compact = _a.compact, square = _a.square, as = _a.as, animated = _a.animated, loading = _a.loading, shortcut = _a.shortcut, shortcutHint = _a.shortcutHint, loadingIconType = _a.loadingIconType, href = _a.href, type = _a.type, rest = __rest(_a, ["icon", "size", "minimal", "transparent", "children", "tooltip", "className", "fluid", "fixed", "alignSelf", "intent", "active", "flat", "rightIcon", "customTheme", "wrap", "readOnly", "badge", "indicator", "description", "maxWidth", "textAlign", "effect", "labelEffect", "descriptionEffect", "leftIconColor", "rightIconColor", "iconColor", "iconsAlign", "leftIconProps", "rightIconProps", "label", "compact", "square", "as", "animated", "loading", "shortcut", "shortcutHint", "loadingIconType", "href", "type"]);
|
|
389
487
|
var animations = (0, useReqoreContext_1.useReqoreProperty)('animations');
|
|
390
488
|
var shortcutHintsEnabled = (0, useReqoreContext_1.useReqoreProperty)('shortcutHints');
|
|
391
489
|
var theme = (0, useTheme_1.useReqoreTheme)('main', customTheme, intent);
|
|
490
|
+
var surface = (0, SurfaceContext_1.useReqoreSurface)();
|
|
392
491
|
var fixedEffect = (0, useReqoreEffect_1.useReqoreEffect)('buttons', theme, effect);
|
|
393
|
-
var
|
|
492
|
+
var _j = (0, useCombinedRefs_1.useCombinedRefs)(ref), targetRef = _j.targetRef, setRef = _j.setRef;
|
|
394
493
|
// Square chips have no horizontal padding, so the content would
|
|
395
494
|
// stick to the left edge if we kept `textAlign`'s usual `'left'`
|
|
396
495
|
// default. Default `textAlign` and `iconsAlign` to `'center'` for
|
|
@@ -456,6 +555,46 @@ var ReqoreButton = (0, react_1.memo)((0, react_1.forwardRef)(function (_a, ref)
|
|
|
456
555
|
? "Loader".concat(loadingIconType || '', "Line")
|
|
457
556
|
: icon || (leftIconProps === null || leftIconProps === void 0 ? void 0 : leftIconProps.icon);
|
|
458
557
|
var memoEffect = (0, react_1.useMemo)(function () { return (__assign(__assign({ interactive: !readOnly && !rest.disabled }, fixedEffect), { gradient: intent ? undefined : fixedEffect === null || fixedEffect === void 0 ? void 0 : fixedEffect.gradient })); }, [fixedEffect, intent, readOnly, rest.disabled]);
|
|
558
|
+
/* The button's colors depend on its gradient alone of its effect: an effect the caller writes inline (a new
|
|
559
|
+
object each render) with the same gradient keeps them. */
|
|
560
|
+
var gradientKey = (memoEffect === null || memoEffect === void 0 ? void 0 : memoEffect.gradient) ? JSON.stringify(memoEffect.gradient) : undefined;
|
|
561
|
+
// The icons stand out from what the button is drawn on, as its text does.
|
|
562
|
+
var colorProps = (0, react_1.useMemo)(function () { return ({
|
|
563
|
+
theme: theme,
|
|
564
|
+
color: customColor,
|
|
565
|
+
minimal: minimal,
|
|
566
|
+
transparent: transparent,
|
|
567
|
+
effect: memoEffect,
|
|
568
|
+
$surface: surface,
|
|
569
|
+
}); }, [theme, customColor, minimal, transparent, gradientKey, surface]);
|
|
570
|
+
/* Its colors in the states it is drawn in, and what its styles paint it with, worked out once per render
|
|
571
|
+
rather than in each of its style rules. */
|
|
572
|
+
var states = (0, react_1.useMemo)(function () { return (0, exports.getButtonStateColors)(colorProps, active); }, [colorProps, active]);
|
|
573
|
+
// whether it has a description, not the description: a node given inline is new each render
|
|
574
|
+
var hasDescription = !!description;
|
|
575
|
+
var paint = (0, react_1.useMemo)(function () { return (0, exports.getButtonPaint)(colorProps, states, hasDescription); }, [colorProps, states, hasDescription]);
|
|
576
|
+
// an icon's own color: in its props (which win, as they are spread over the rest), else the button's
|
|
577
|
+
var _k = (0, iconProps_1.splitIconColor)(leftIconProps), leftIconPropsColor = _k[0], leftIconRest = _k[1];
|
|
578
|
+
var _l = (0, iconProps_1.splitIconColor)(rightIconProps), rightIconPropsColor = _l[0], rightIconRest = _l[1];
|
|
579
|
+
var leftIconOwn = leftIconPropsColor || leftIconColor || iconColor;
|
|
580
|
+
var rightIconOwn = rightIconPropsColor || rightIconColor || iconColor;
|
|
581
|
+
// only for the icons the button draws
|
|
582
|
+
var leftIconLook = (0, react_1.useMemo)(function () { return (hasLeftIcon ? getButtonIconLookIn(theme, states, leftIconOwn) : undefined); }, [hasLeftIcon, theme, states, leftIconOwn]);
|
|
583
|
+
var rightIconLook = (0, react_1.useMemo)(function () { return (hasRightIcon ? getButtonIconLookIn(theme, states, rightIconOwn) : undefined); }, [hasRightIcon, theme, states, rightIconOwn]);
|
|
584
|
+
/* What the button holds (its badges, a label given as a node) is drawn on the button: at rest, or in its
|
|
585
|
+
fill when it is active (a selected menu item, whose badges were picked for the resting wash). */
|
|
586
|
+
var restingBackground = ((_d = states.active) !== null && _d !== void 0 ? _d : states.rest).backgrounds;
|
|
587
|
+
/* Its effect's color is written on its own fill, at rest and hovered (or active), not on the surface
|
|
588
|
+
around it: an info text on a success button was read on the page, 2.7:1 on the green. */
|
|
589
|
+
var fillBackgrounds = (0, react_1.useMemo)(function () {
|
|
590
|
+
var _a, _b;
|
|
591
|
+
return states.active
|
|
592
|
+
? states.active.backgrounds
|
|
593
|
+
: __spreadArray(__spreadArray([], states.rest.backgrounds, true), ((_b = (_a = states.hover) === null || _a === void 0 ? void 0 : _a.backgrounds) !== null && _b !== void 0 ? _b : []), true);
|
|
594
|
+
}, [states]);
|
|
595
|
+
// one object for as long as the opacity holds: an icon is a memo component
|
|
596
|
+
var leftIconEffect = (0, react_1.useMemo)(function () { return ({ opacity: leftIconLook === null || leftIconLook === void 0 ? void 0 : leftIconLook.opacity }); }, [leftIconLook === null || leftIconLook === void 0 ? void 0 : leftIconLook.opacity]);
|
|
597
|
+
var rightIconEffect = (0, react_1.useMemo)(function () { return ({ opacity: rightIconLook === null || rightIconLook === void 0 ? void 0 : rightIconLook.opacity }); }, [rightIconLook === null || rightIconLook === void 0 ? void 0 : rightIconLook.opacity]);
|
|
459
598
|
var indicatorConfig = (0, react_1.useMemo)(function () {
|
|
460
599
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
461
600
|
if (!indicator) {
|
|
@@ -475,33 +614,34 @@ var ReqoreButton = (0, react_1.memo)((0, react_1.forwardRef)(function (_a, ref)
|
|
|
475
614
|
// The caller's tab stop wins — a grid or a diagram keeps one of its
|
|
476
615
|
// buttons in the tab order and moves it — except that a disabled
|
|
477
616
|
// button is never one.
|
|
478
|
-
tabIndex: rest.disabled ? -1 : ((
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
? {
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
617
|
+
tabIndex: rest.disabled ? -1 : ((_e = rest.tabIndex) !== null && _e !== void 0 ? _e : 0) }, elementProps, { as: element, theme: theme, fluid: fluid, fixed: fixed, alignSelf: alignSelf, maxWidth: maxWidth, minimal: minimal, transparent: transparent, size: size, intent: intent, color: customColor,
|
|
618
|
+
$surface: surface,
|
|
619
|
+
$backgrounds: fillBackgrounds,
|
|
620
|
+
$paint: paint, animate: animate, flat: _flat, active: active, readOnly: readOnly || loading, wrap: wrap, description: description, className: "".concat(className || '', " reqore-control reqore-button"),
|
|
621
|
+
compact: _compact, square: square, tooltip: tooltip }, useMarqueeOnHover_1.REQORE_MARQUEE_HOST, { Component: exports.StyledButton, ref: setRef, children: [(0, jsx_runtime_1.jsxs)(SurfaceContext_1.ReqoreSurfaceProvider, { color: restingBackground, children: [(0, jsx_runtime_1.jsxs)(exports.StyledButtonContent, { size: size, wrap: wrap, description: description, flat: _flat, children: [hasLeftIcon ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Icon_1.default, __assign({ size: size, color: (_f = leftIconLook === null || leftIconLook === void 0 ? void 0 : leftIconLook.color) !== null && _f !== void 0 ? _f : leftIconOwn, compact: true, effect: leftIconEffect }, leftIconRest, { style: textAlign !== 'left' || iconsAlign === 'center' || !_children
|
|
622
|
+
? {
|
|
623
|
+
marginRight: iconsAlign !== 'center' || !_children ? 'auto' : undefined,
|
|
624
|
+
marginLeft: iconsAlign === 'center' ||
|
|
625
|
+
!_children ||
|
|
626
|
+
(textAlign === 'center' && !_children)
|
|
627
|
+
? 'auto'
|
|
628
|
+
: undefined,
|
|
629
|
+
}
|
|
630
|
+
: undefined, animation: loading ? 'spin' : leftIconProps === null || leftIconProps === void 0 ? void 0 : leftIconProps.animation, icon: leftIcon })), _children || hasRightIcon ? ((0, jsx_runtime_1.jsx)(Spacer_1.ReqoreSpacer, { width: sizes_1.PADDING_FROM_SIZE[size] / 2 })) : null] })) : _children ? ((0, jsx_runtime_1.jsx)(Spacer_1.ReqoreHorizontalSpacer, { width: 1, style: textAlign !== 'left' ? { marginRight: 'auto' } : undefined })) : null, _children && ((0, jsx_runtime_1.jsxs)(exports.StyledAnimatedTextWrapper, { textAlign: textAlign, style: textAlign === 'center' && iconsAlign !== 'center'
|
|
631
|
+
? { margin: 'auto' }
|
|
632
|
+
: undefined, children: [!animate && ((0, jsx_runtime_1.jsx)(styles_1.StyledContent, __assign({ wrap: wrap, effect: labelEffect, className: 'reqore-button-text-content' }, useMarqueeOnHover_1.REQORE_MARQUEE_TEXT, { children: _children }))), animate && ((0, jsx_runtime_1.jsx)(styles_1.StyledActiveContent, __assign({ wrap: wrap, effect: labelEffect, className: 'reqore-button-text-content reqore-animated reqore-active' }, useMarqueeOnHover_1.REQORE_MARQUEE_TEXT, { children: _children }))), animate && ((0, jsx_runtime_1.jsx)(styles_1.StyledInActiveContent, __assign({ wrap: wrap, effect: labelEffect, className: 'reqore-button-text-content reqore-animated reqore-inactive' }, useMarqueeOnHover_1.REQORE_MARQUEE_TEXT, { "aria-hidden": 'true', children: _children }))), animate && ((0, jsx_runtime_1.jsx)(styles_1.StyledInvisibleContent, { wrap: wrap, effect: labelEffect, className: 'reqore-button-text-content reqore-animated reqore-invisible', "aria-hidden": 'true', children: _children })), (badge || badge === 0) && wrap ? ((0, jsx_runtime_1.jsx)(exports.ButtonBadge, { content: badge, size: size, wrap: true, active: active })) : null] })), (badge || badge === 0) && !wrap ? ((0, jsx_runtime_1.jsx)(exports.ButtonBadge, { content: badge, size: size, compact: _compact, wrapGroup: false, wrap: false, active: active })) : null, !hasRightIcon ? (_children ? ((0, jsx_runtime_1.jsx)(Spacer_1.ReqoreHorizontalSpacer, { width: 1, style: textAlign !== 'right' && !hasRightAlignedBadge
|
|
633
|
+
? { marginLeft: 'auto' }
|
|
634
|
+
: undefined })) : null) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [_children || badge ? (0, jsx_runtime_1.jsx)(Spacer_1.ReqoreSpacer, { width: sizes_1.PADDING_FROM_SIZE[size] / 2 }) : null, (0, jsx_runtime_1.jsx)(Icon_1.default, __assign({ icon: rightIcon, size: size, color: (_g = rightIconLook === null || rightIconLook === void 0 ? void 0 : rightIconLook.color) !== null && _g !== void 0 ? _g : rightIconOwn, effect: rightIconEffect }, rightIconRest, { style: textAlign !== 'right' || iconsAlign === 'center'
|
|
635
|
+
? {
|
|
636
|
+
marginLeft: !hasRightAlignedBadge && (iconsAlign !== 'center' || !_children)
|
|
637
|
+
? 'auto'
|
|
638
|
+
: undefined,
|
|
639
|
+
marginRight: iconsAlign === 'center' || (textAlign === 'center' && !_children)
|
|
640
|
+
? 'auto'
|
|
641
|
+
: undefined,
|
|
642
|
+
}
|
|
643
|
+
: undefined }))] })), showShortcutHint ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Spacer_1.ReqoreSpacer, { width: sizes_1.PADDING_FROM_SIZE[size] / 2 }), (0, jsx_runtime_1.jsx)(KeyboardShortcut_1.ReqoreKeyboardShortcut, { shortcut: shortcut, size: size, compact: _compact })] })) : null] }), description && ((0, jsx_runtime_1.jsx)(Effect_1.ReqoreTextEffect, { className: 'reqore-button-description', effect: __assign({ textSize: (0, utils_1.getOneLessSize)(size), weight: 'light', textAlign: textAlign }, descriptionEffect), children: description }))] }), indicatorConfig && ((0, jsx_runtime_1.jsx)(exports.StyledButtonIndicator, { className: 'reqore-button-indicator', "$color": indicatorConfig.color, "$diameter": indicatorConfig.diameter, "$offset": indicatorConfig.offset, "$position": indicatorConfig.position, "$pulse": indicatorConfig.pulse, "aria-hidden": 'true' }))] })));
|
|
504
644
|
}));
|
|
505
645
|
exports.default = ReqoreButton;
|
|
506
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15
|
|
646
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15;
|
|
507
647
|
//# sourceMappingURL=index.js.map
|