@artsy/palette 37.4.0-canary.1351.29887.0 → 38.0.0-canary.1357.29988.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Theme.d.ts +8 -1
- package/dist/Theme.js +10 -2
- package/dist/Theme.js.map +1 -1
- package/dist/elements/AutocompleteInput/AutocompleteInput.js +2 -2
- package/dist/elements/AutocompleteInput/AutocompleteInput.js.map +1 -1
- package/dist/elements/BaseTabs/BaseTab.d.ts +4 -4
- package/dist/elements/BorderedRadio/BorderedRadio.d.ts +1 -1
- package/dist/elements/Button/Button.js +2 -2
- package/dist/elements/Button/Button.js.map +1 -1
- package/dist/elements/Button/tokens.js +4 -8
- package/dist/elements/Button/tokens.js.map +1 -1
- package/dist/elements/Cards/Card.js +6 -3
- package/dist/elements/Cards/Card.js.map +1 -1
- package/dist/elements/Checkbox/Checkbox.js +1 -1
- package/dist/elements/Checkbox/Checkbox.js.map +1 -1
- package/dist/elements/Dropdown/Dropdown.js +2 -2
- package/dist/elements/Dropdown/Dropdown.js.map +1 -1
- package/dist/elements/Dropdown/Dropdown.story.d.ts +0 -1
- package/dist/elements/Dropdown/Dropdown.story.js +1 -41
- package/dist/elements/Dropdown/Dropdown.story.js.map +1 -1
- package/dist/elements/HorizontalOverflow/HorizontalOverflow.js +8 -5
- package/dist/elements/HorizontalOverflow/HorizontalOverflow.js.map +1 -1
- package/dist/elements/Input/tokens.js +1 -1
- package/dist/elements/Input/tokens.js.map +1 -1
- package/dist/elements/ModalDialog/ModalDialogContent.js +6 -4
- package/dist/elements/ModalDialog/ModalDialogContent.js.map +1 -1
- package/dist/elements/MultiSelect/MultiSelect.js +1 -1
- package/dist/elements/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/elements/PhoneInput/PhoneInput.js +1 -2
- package/dist/elements/PhoneInput/PhoneInput.js.map +1 -1
- package/dist/elements/Pointer/Pointer.js +2 -2
- package/dist/elements/Pointer/Pointer.js.map +1 -1
- package/dist/elements/Popover/Popover.js +2 -2
- package/dist/elements/Popover/Popover.js.map +1 -1
- package/dist/elements/Popover/Popover.story.d.ts +0 -10
- package/dist/elements/Popover/Popover.story.js +10 -59
- package/dist/elements/Popover/Popover.story.js.map +1 -1
- package/dist/elements/Range/Range.js +1 -2
- package/dist/elements/Range/Range.js.map +1 -1
- package/dist/elements/Shelf/ShelfNavigation.js +1 -2
- package/dist/elements/Shelf/ShelfNavigation.js.map +1 -1
- package/dist/elements/Sup/Sup.d.ts +4 -4
- package/dist/elements/Text/Text.d.ts +4 -4
- package/dist/elements/TextArea/TextArea.js +1 -1
- package/dist/elements/TextArea/TextArea.js.map +1 -1
- package/dist/elements/Tooltip/Tooltip.js +2 -1
- package/dist/elements/Tooltip/Tooltip.js.map +1 -1
- package/dist/elements/Tooltip/Tooltip.story.d.ts +1 -0
- package/dist/elements/Tooltip/Tooltip.story.js +20 -1
- package/dist/elements/Tooltip/Tooltip.story.js.map +1 -1
- package/dist/helpers/index.d.ts +0 -1
- package/dist/helpers/index.js +0 -11
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/injectGlobalStyles.js +1 -1
- package/dist/helpers/injectGlobalStyles.js.map +1 -1
- package/dist/styles.css +48 -0
- package/dist/tokens.json +7 -1
- package/dist/utils/usePortal.js +2 -4
- package/dist/utils/usePortal.js.map +1 -1
- package/dist/utils/usePosition.d.ts +3 -14
- package/dist/utils/usePosition.js +72 -134
- package/dist/utils/usePosition.js.map +1 -1
- package/package.json +3 -3
- package/dist/helpers/shadow.d.ts +0 -5
- package/dist/helpers/shadow.js +0 -16
- package/dist/helpers/shadow.js.map +0 -1
package/dist/Theme.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from "@artsy/palette-tokens/dist/themes/v3";
|
|
|
3
3
|
export { TextVariant } from "@artsy/palette-tokens/dist/typography/v3";
|
|
4
4
|
interface ThemeProps {
|
|
5
5
|
children?: React.ReactNode;
|
|
6
|
+
theme?: "light" | "dark";
|
|
6
7
|
}
|
|
7
8
|
/**
|
|
8
9
|
* A wrapper component for passing down the Artsy theme context
|
|
@@ -25,9 +26,11 @@ export declare const useTheme: <T extends {
|
|
|
25
26
|
black10: string;
|
|
26
27
|
black5: string;
|
|
27
28
|
white100: string;
|
|
29
|
+
blue200: string;
|
|
28
30
|
blue150: string;
|
|
29
31
|
blue100: string;
|
|
30
32
|
brand: string;
|
|
33
|
+
blue15: string;
|
|
31
34
|
blue10: string;
|
|
32
35
|
green150: string;
|
|
33
36
|
green100: string;
|
|
@@ -41,6 +44,10 @@ export declare const useTheme: <T extends {
|
|
|
41
44
|
red150: string;
|
|
42
45
|
red100: string;
|
|
43
46
|
red10: string;
|
|
47
|
+
dropShadow: string;
|
|
48
|
+
innerShadow: string;
|
|
49
|
+
flatShadow: string;
|
|
50
|
+
textShadow: string;
|
|
44
51
|
};
|
|
45
52
|
fonts: {
|
|
46
53
|
sans: string;
|
|
@@ -63,7 +70,7 @@ export declare const useTheme: <T extends {
|
|
|
63
70
|
6: string;
|
|
64
71
|
12: string;
|
|
65
72
|
};
|
|
66
|
-
textVariants: Record<"
|
|
73
|
+
textVariants: Record<"xxxl" | "xxl" | "xl" | "lg" | "lg-display" | "md" | "sm" | "sm-display" | "xs" | "xxs" | "bq", import("@artsy/palette-tokens/dist/typography/v3").TextTreatment>;
|
|
67
74
|
}>() => {
|
|
68
75
|
theme: T;
|
|
69
76
|
};
|
package/dist/Theme.js
CHANGED
|
@@ -31,16 +31,24 @@ Object.keys(_v).forEach(function (key) {
|
|
|
31
31
|
}
|
|
32
32
|
});
|
|
33
33
|
});
|
|
34
|
+
var _v3Dark = require("@artsy/palette-tokens/dist/themes/v3Dark");
|
|
34
35
|
var _v2 = require("@artsy/palette-tokens/dist/typography/v3");
|
|
35
36
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
36
37
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
38
|
+
var THEMES = {
|
|
39
|
+
light: _themes.THEME,
|
|
40
|
+
dark: _v3Dark.THEME_DARK
|
|
41
|
+
};
|
|
37
42
|
/**
|
|
38
43
|
* A wrapper component for passing down the Artsy theme context
|
|
39
44
|
*/
|
|
40
45
|
var Theme = function Theme(_ref) {
|
|
41
|
-
var children = _ref.children
|
|
46
|
+
var children = _ref.children,
|
|
47
|
+
_ref$theme = _ref.theme,
|
|
48
|
+
theme = _ref$theme === void 0 ? "light" : _ref$theme;
|
|
49
|
+
var selectedTheme = THEMES[theme];
|
|
42
50
|
return /*#__PURE__*/_react.default.createElement(_styledComponents.ThemeProvider, {
|
|
43
|
-
theme:
|
|
51
|
+
theme: selectedTheme
|
|
44
52
|
}, children);
|
|
45
53
|
};
|
|
46
54
|
exports.Theme = Theme;
|
package/dist/Theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Theme.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_themes","_v","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_v2","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","Theme","_ref","children","
|
|
1
|
+
{"version":3,"file":"Theme.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_themes","_v","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_v3Dark","_v2","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","THEMES","light","THEME","dark","THEME_DARK","Theme","_ref","children","_ref$theme","theme","selectedTheme","createElement","ThemeProvider","displayName","useTheme","useContext","ThemeContext"],"sources":["../src/Theme.tsx"],"sourcesContent":["import React, { useContext } from \"react\"\nimport {\n // FIXME: Upgrading styled-components types to get `ThemeContext` breaks many other typings.\n // Notably: `Icon` and `Sans|Serif`\n // @ts-expect-error MIGRATE_STRICT_MODE\n ThemeContext,\n ThemeProvider,\n} from \"styled-components\"\nimport { THEME, Theme as TTheme } from \"./themes\"\n\nexport * from \"@artsy/palette-tokens/dist/themes/v3\"\nimport { THEME_DARK } from \"@artsy/palette-tokens/dist/themes/v3Dark\"\nexport { TextVariant } from \"@artsy/palette-tokens/dist/typography/v3\"\n\nconst THEMES = {\n light: THEME,\n dark: THEME_DARK,\n}\n\ninterface ThemeProps {\n children?: React.ReactNode\n theme?: \"light\" | \"dark\"\n}\n\n/**\n * A wrapper component for passing down the Artsy theme context\n */\nexport const Theme: React.FC<ThemeProps> = ({ children, theme = \"light\" }) => {\n const selectedTheme = THEMES[theme]\n return <ThemeProvider theme={selectedTheme}>{children}</ThemeProvider>\n}\n\n/** Returns the current theme */\nexport const useTheme = <T extends TTheme>() => {\n const theme: T = useContext(ThemeContext)\n return { theme }\n}\n"],"mappings":"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"}
|
|
@@ -9,7 +9,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
10
10
|
var _useKeyboardListNavigation = require("use-keyboard-list-navigation");
|
|
11
11
|
var _Spinner = require("../Spinner");
|
|
12
|
-
var _helpers = require("../../helpers");
|
|
13
12
|
var _SearchIcon = _interopRequireDefault(require("@artsy/icons/SearchIcon"));
|
|
14
13
|
var _CloseIcon = _interopRequireDefault(require("@artsy/icons/CloseIcon"));
|
|
15
14
|
var _utils = require("../../utils");
|
|
@@ -20,6 +19,7 @@ var _LabeledInput = require("../LabeledInput");
|
|
|
20
19
|
var _VisuallyHidden = require("../VisuallyHidden");
|
|
21
20
|
var _AutocompleteInputOption = require("./AutocompleteInputOption");
|
|
22
21
|
var _AutocompleteInputOptionLabel = require("./AutocompleteInputOptionLabel");
|
|
22
|
+
var _themeGet = require("@styled-system/theme-get");
|
|
23
23
|
var _excluded = ["clamp", "defaultValue", "dropdownMaxHeight", "flip", "footer", "forwardRef", "header", "height", "id", "loading", "onChange", "onClear", "onClose", "onKeyDown", "onSelect", "onSubmit", "options", "renderOption"];
|
|
24
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
25
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -400,7 +400,7 @@ AutocompleteInput.displayName = "AutocompleteInput";
|
|
|
400
400
|
var AutocompleteInputDropdown = (0, _styledComponents.default)(_Box.Box).withConfig({
|
|
401
401
|
displayName: "AutocompleteInput__AutocompleteInputDropdown",
|
|
402
402
|
componentId: "sc-89lyrd-0"
|
|
403
|
-
})(["box-shadow:", ";z-index:1;"],
|
|
403
|
+
})(["box-shadow:", ";z-index:1;"], (0, _themeGet.themeGet)("colors.dropShadow"));
|
|
404
404
|
var AutocompleteInputOptions = (0, _styledComponents.default)(_Box.Box).withConfig({
|
|
405
405
|
displayName: "AutocompleteInput__AutocompleteInputOptions",
|
|
406
406
|
componentId: "sc-89lyrd-1"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteInput.js","names":["_composeReactRefs","_interopRequireDefault","require","_react","_interopRequireWildcard","_styledComponents","_useKeyboardListNavigation","_Spinner","_helpers","_SearchIcon","_CloseIcon","_utils","_useWidthOf2","_Box","_Clickable","_LabeledInput","_VisuallyHidden","_AutocompleteInputOption","_AutocompleteInputOptionLabel","_excluded","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_extends","assign","bind","target","i","arguments","length","source","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","name","Array","from","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","reducer","state","action","type","open","query","payload","AutocompleteInput","_ref","_staged$text","_ref$clamp","clamp","_ref$defaultValue","defaultValue","_ref$dropdownMaxHeigh","dropdownMaxHeight","_ref$flip","flip","footer","forwardedRef","forwardRef","header","height","id","loading","onChange","onClear","onClose","onKeyDown","onSelect","onSubmit","options","_ref$renderOption","renderOption","option","createElement","AutocompleteInputOptionLabel","rest","inputRef","useRef","containerRef","headerRef","footerRef","_splitBoxProps","splitBoxProps","_splitBoxProps2","boxProps","inputProps","_useReducer","useReducer","_useReducer2","dispatch","optionsWithRefs","useMemo","map","ref","createRef","resetUI","setTimeout","_inputRef$current","current","focus","reset","handleSelect","index","_inputRef$current2","text","_useKeyboardListNavig","useKeyboardListNavigation","list","waitForInteractive","onEnter","_ref2","element","event","preventDefault","stopPropagation","isDropdownVisible","useEffect","_usePosition","usePosition","active","offset","position","anchorRef","tooltipRef","_useWidthOf","useWidthOf","width","handleFocus","handleMouseDown","handleClick","handleMouseEnter","cursor","interactive","handleChange","currentTarget","handleClearOrSubmit","_inputRef$current3","handleClose","useCallback","ignoreFocusChangeRef","ignoreFocusChange","onMouseDown","onMouseUp","_option$ref","_option$ref$current","handleFocusChange","focused","_useContainsFocus","useContainsFocus","containsFocusRef","useClickOutside","onClickOutside","when","handleInputKeydown","_inputRef$current4","blur","handleContainerKeydown","_inputRef$current5","_inputRef$current6","staged","Box","composeRefs","LabeledInput","role","concat","label","Spinner","size","Clickable","onClick","display","alignItems","fill","onFocus","autoComplete","AutocompleteInputDropdown","AutocompleteInputOptions","maxHeight","_ref3","AutocompleteInputOption","onMouseEnter","selected","tabIndex","VisuallyHidden","exports","displayName","styled","withConfig","componentId","DROP_SHADOW"],"sources":["../../../src/elements/AutocompleteInput/AutocompleteInput.tsx"],"sourcesContent":["import composeRefs from \"@seznam/compose-react-refs\"\nimport React, {\n createRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from \"react\"\nimport styled from \"styled-components\"\nimport { useKeyboardListNavigation } from \"use-keyboard-list-navigation\"\nimport { Spinner } from \"../Spinner\"\nimport { DROP_SHADOW } from \"../../helpers\"\nimport SearchIcon from \"@artsy/icons/SearchIcon\"\nimport CloseIcon from \"@artsy/icons/CloseIcon\"\nimport { usePosition, useContainsFocus, useClickOutside } from \"../../utils\"\nimport { useWidthOf } from \"../../utils/useWidthOf\"\nimport { Box, splitBoxProps } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { InputProps } from \"../Input\"\nimport { LabeledInput } from \"../LabeledInput\"\nimport { VisuallyHidden } from \"../VisuallyHidden\"\nimport { AutocompleteInputOption } from \"./AutocompleteInputOption\"\nimport { AutocompleteInputOptionLabel } from \"./AutocompleteInputOptionLabel\"\nimport { ResponsiveValue } from \"styled-system\"\n\nexport interface AutocompleteFooterActions {\n /** Call to close dropdown */\n onClose(): void\n}\n\n/** Base option type — can be expanded */\nexport interface AutocompleteInputOptionType {\n text: string\n value: string\n}\n\ninterface State {\n open: boolean\n query: string\n}\n\ntype Action =\n | { type: \"OPEN\" }\n | { type: \"CLOSE\" }\n | { type: \"CLEAR\" }\n | { type: \"CHANGE\"; payload: { query: string } }\n | { type: \"SELECT\"; payload: { query: string } }\n\nconst reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"OPEN\":\n return { ...state, open: true }\n case \"CLOSE\":\n return { ...state, open: false }\n case \"CLEAR\":\n return { ...state, query: \"\" }\n case \"CHANGE\":\n return { ...state, query: action.payload.query, open: true }\n case \"SELECT\":\n return { ...state, query: action.payload.query, open: false }\n }\n}\n\nexport interface AutocompleteInputProps<T extends AutocompleteInputOptionType>\n extends Omit<InputProps, \"onSelect\" | \"onSubmit\"> {\n /** Optionally enable clamping (default: `false`) */\n clamp?: boolean\n defaultValue?: string\n dropdownMaxHeight?: ResponsiveValue<string | number>\n loading?: boolean\n header?: React.ReactNode\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n footer?:\n | React.ReactNode\n | ((dropdownActions: AutocompleteFooterActions) => void)\n /** Ref to the input; workaround generics */\n forwardRef?: React.Ref<HTMLInputElement>\n /** on <enter> when no option is selected */\n onSubmit?(query: string): void\n /** on <click> or <enter> when an option is selected */\n onSelect?(option: T, index: number): void\n /** on <click> of the 'x' (clear) button */\n onClear?(): void\n /** Callback that runs when options are hidden */\n onClose?(): void\n options: T[]\n renderOption?(\n option: T,\n i: number\n ): React.ReactElement<any, string | React.JSXElementConstructor<any>>\n}\n\n/** AutocompleteInput */\nexport const AutocompleteInput = <T extends AutocompleteInputOptionType>({\n clamp = false,\n defaultValue = \"\",\n dropdownMaxHeight = 308, // 308 = roughly 5.5 options\n flip = true,\n footer,\n forwardRef: forwardedRef,\n header,\n height,\n id,\n loading,\n onChange,\n onClear,\n onClose,\n onKeyDown,\n onSelect,\n onSubmit,\n options,\n renderOption = (option) => <AutocompleteInputOptionLabel {...option} />,\n ...rest\n}: AutocompleteInputProps<T>) => {\n const inputRef = useRef<HTMLInputElement | null>(null)\n const containerRef = useRef<HTMLDivElement | null>(null)\n const headerRef = useRef<HTMLDivElement | null>(null)\n const footerRef = useRef<HTMLDivElement | null>(null)\n\n const [boxProps, inputProps] = splitBoxProps(rest)\n\n const [state, dispatch] = useReducer(reducer, {\n open: false,\n query: defaultValue,\n })\n\n const optionsWithRefs = useMemo(() => {\n return options.map((option) => ({\n option,\n ref: createRef<HTMLButtonElement>(),\n }))\n }, [options])\n\n const resetUI = () => {\n setTimeout(() => {\n inputRef.current?.focus()\n reset()\n dispatch({ type: \"CLOSE\" })\n }, 100)\n }\n\n const handleSelect = (option: T, index: number) => {\n dispatch({ type: \"SELECT\", payload: { query: option.text } })\n inputRef.current?.focus()\n onSelect?.(option, index)\n }\n\n const { index, reset, set } = useKeyboardListNavigation({\n ref: containerRef,\n list: options,\n waitForInteractive: true,\n onEnter: ({ element: option, index: i, event }) => {\n event.preventDefault()\n event.stopPropagation()\n handleSelect(option, i)\n resetUI()\n },\n })\n\n const isDropdownVisible = state.open && options.length > 0\n\n // Reset keyboard navigation when options change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(reset, [options])\n\n // Reset keyboard navigation when query is empty\n useEffect(() => {\n if (state.query === \"\") reset()\n }, [reset, state.query])\n\n const { anchorRef, tooltipRef } = usePosition({\n active: isDropdownVisible,\n clamp,\n flip,\n key: options.length,\n offset: 10,\n position: \"bottom\",\n })\n\n const { width } = useWidthOf({ ref: anchorRef })\n\n const handleFocus = () => {\n reset()\n dispatch({ type: \"OPEN\" })\n }\n\n const handleMouseDown = (option: T, i: number) => () => {\n handleSelect(option, i)\n resetUI()\n }\n\n const handleClick = () => {\n dispatch({ type: \"OPEN\" })\n }\n\n const handleMouseEnter = (i: number) => () => {\n set({ cursor: i, interactive: true })\n }\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const {\n currentTarget: { value },\n } = event\n\n dispatch({ type: \"CHANGE\", payload: { query: value } })\n onChange?.(event)\n }\n\n const handleClearOrSubmit = () => {\n if (state.query === \"\") {\n onSubmit?.(state.query)\n return\n }\n\n dispatch({ type: \"CLEAR\" })\n inputRef.current?.focus()\n onClear?.()\n }\n\n const handleClose = useCallback(() => {\n dispatch({ type: \"CLOSE\" })\n reset()\n onClose?.()\n }, [onClose, reset])\n\n const ignoreFocusChangeRef = useRef<boolean>(false)\n const ignoreFocusChange = {\n onMouseDown: () => (ignoreFocusChangeRef.current = true),\n onMouseUp: () => (ignoreFocusChangeRef.current = false),\n }\n\n // Moves focus to different options when keyboard navigating using up/down\n useEffect(() => {\n const option = optionsWithRefs[index]\n option?.ref?.current?.focus()\n }, [index, optionsWithRefs])\n\n const handleFocusChange = useCallback(\n (focused: boolean) => {\n if (ignoreFocusChangeRef.current || focused || !isDropdownVisible) return\n\n handleClose()\n },\n\n [isDropdownVisible, handleClose]\n )\n\n // Handle closing the dropdown when clicking outside of the input\n // or when focus leaves the input completely\n const { ref: containsFocusRef } = useContainsFocus({\n onChange: handleFocusChange,\n })\n\n useClickOutside({\n ref: containsFocusRef,\n onClickOutside: handleClose,\n when: isDropdownVisible,\n type: \"click\",\n })\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n switch (event.key) {\n // Handle <Enter> when nothing is selected\n case \"Enter\":\n if (state.query !== \"\" && index === -1) {\n onSubmit?.(state.query)\n resetUI()\n }\n return\n\n // <Esc> to close dropdown\n case \"Escape\":\n event.preventDefault()\n event.stopPropagation()\n\n dispatch({ type: \"CLOSE\" })\n inputRef.current?.blur()\n\n return\n\n default:\n break\n }\n\n onKeyDown?.(event)\n }\n\n // Moves focus back to input when typing\n const handleContainerKeydown = (\n event: React.KeyboardEvent<HTMLDivElement>\n ) => {\n switch (event.key) {\n case \"Alt\":\n case \"ArrowDown\":\n case \"ArrowUp\":\n case \"Control\":\n case \"Enter\":\n case \"Meta\":\n case \"Shift\":\n case \"Tab\":\n // Ignore\n return\n\n case \"Escape\":\n event.preventDefault()\n event.stopPropagation()\n\n dispatch({ type: \"CLOSE\" })\n inputRef.current?.blur()\n reset()\n\n return\n\n default:\n inputRef.current?.focus()\n }\n }\n\n // Option that is being hovered or keyed into\n const staged = options[index]\n\n return (\n <Box\n ref={composeRefs(containerRef, containsFocusRef) as any}\n onKeyDown={handleContainerKeydown}\n {...boxProps}\n >\n <LabeledInput\n ref={composeRefs(inputRef, anchorRef, forwardedRef) as any}\n role=\"combobox\"\n aria-expanded={isDropdownVisible}\n aria-autocomplete=\"list\"\n {...(id ? { id, \"aria-describedby\": `${id}__assistiveHint` } : {})}\n label={\n loading ? (\n <Box width={18}>\n <Spinner size=\"small\" />\n </Box>\n ) : state.query ? (\n <Clickable\n onClick={handleClearOrSubmit}\n height=\"100%\"\n display=\"flex\"\n alignItems=\"center\"\n aria-label=\"Clear input\"\n >\n <CloseIcon fill=\"black60\" aria-hidden />\n </Clickable>\n ) : (\n <SearchIcon fill=\"black60\" aria-hidden />\n )\n }\n value={staged?.text ?? state.query}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleInputKeydown}\n onClick={handleClick}\n autoComplete=\"off\"\n height={height}\n {...inputProps}\n />\n\n {isDropdownVisible && (\n <AutocompleteInputDropdown\n ref={tooltipRef as any}\n role=\"listbox\"\n width={width}\n >\n <div ref={headerRef} {...ignoreFocusChange}>\n {header}\n </div>\n\n <AutocompleteInputOptions maxHeight={dropdownMaxHeight}>\n {optionsWithRefs.map(({ option, ref }, i) => {\n return (\n <AutocompleteInputOption\n key={i}\n ref={ref}\n role=\"option\"\n aria-selected={i === index}\n aria-posinset={i + 1}\n aria-setsize={options.length}\n onMouseDown={handleMouseDown(option, i)}\n onMouseEnter={handleMouseEnter(i)}\n selected={i === index}\n tabIndex={-1}\n >\n {renderOption(option, i)}\n </AutocompleteInputOption>\n )\n })}\n </AutocompleteInputOptions>\n\n <div ref={footerRef} {...ignoreFocusChange}>\n {typeof footer === \"function\"\n ? footer({ onClose: handleClose })\n : footer}\n </div>\n </AutocompleteInputDropdown>\n )}\n\n <VisuallyHidden {...(id ? { id: `${id}__assistiveHint` } : {})}>\n When autocomplete results are available use up and down arrows to review\n and enter to select. Touch device users, explore by touch or with swipe\n gestures.\n </VisuallyHidden>\n\n {isDropdownVisible && (\n <VisuallyHidden role=\"status\" aria-atomic=\"true\" aria-live=\"polite\">\n {options.length === 1\n ? `1 result is available`\n : `${options.length} results are available`}\n </VisuallyHidden>\n )}\n </Box>\n )\n}\n\nconst AutocompleteInputDropdown = styled(Box)`\n box-shadow: ${DROP_SHADOW};\n z-index: 1;\n`\n\nconst AutocompleteInputOptions = styled(Box)`\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n`\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AutocompleteInput.js","names":["_composeReactRefs","_interopRequireDefault","require","_react","_interopRequireWildcard","_styledComponents","_useKeyboardListNavigation","_Spinner","_SearchIcon","_CloseIcon","_utils","_useWidthOf2","_Box","_Clickable","_LabeledInput","_VisuallyHidden","_AutocompleteInputOption","_AutocompleteInputOptionLabel","_themeGet","_excluded","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_extends","assign","bind","target","i","arguments","length","source","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","name","Array","from","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","reducer","state","action","type","open","query","payload","AutocompleteInput","_ref","_staged$text","_ref$clamp","clamp","_ref$defaultValue","defaultValue","_ref$dropdownMaxHeigh","dropdownMaxHeight","_ref$flip","flip","footer","forwardedRef","forwardRef","header","height","id","loading","onChange","onClear","onClose","onKeyDown","onSelect","onSubmit","options","_ref$renderOption","renderOption","option","createElement","AutocompleteInputOptionLabel","rest","inputRef","useRef","containerRef","headerRef","footerRef","_splitBoxProps","splitBoxProps","_splitBoxProps2","boxProps","inputProps","_useReducer","useReducer","_useReducer2","dispatch","optionsWithRefs","useMemo","map","ref","createRef","resetUI","setTimeout","_inputRef$current","current","focus","reset","handleSelect","index","_inputRef$current2","text","_useKeyboardListNavig","useKeyboardListNavigation","list","waitForInteractive","onEnter","_ref2","element","event","preventDefault","stopPropagation","isDropdownVisible","useEffect","_usePosition","usePosition","active","offset","position","anchorRef","tooltipRef","_useWidthOf","useWidthOf","width","handleFocus","handleMouseDown","handleClick","handleMouseEnter","cursor","interactive","handleChange","currentTarget","handleClearOrSubmit","_inputRef$current3","handleClose","useCallback","ignoreFocusChangeRef","ignoreFocusChange","onMouseDown","onMouseUp","_option$ref","_option$ref$current","handleFocusChange","focused","_useContainsFocus","useContainsFocus","containsFocusRef","useClickOutside","onClickOutside","when","handleInputKeydown","_inputRef$current4","blur","handleContainerKeydown","_inputRef$current5","_inputRef$current6","staged","Box","composeRefs","LabeledInput","role","concat","label","Spinner","size","Clickable","onClick","display","alignItems","fill","onFocus","autoComplete","AutocompleteInputDropdown","AutocompleteInputOptions","maxHeight","_ref3","AutocompleteInputOption","onMouseEnter","selected","tabIndex","VisuallyHidden","exports","displayName","styled","withConfig","componentId","themeGet"],"sources":["../../../src/elements/AutocompleteInput/AutocompleteInput.tsx"],"sourcesContent":["import composeRefs from \"@seznam/compose-react-refs\"\nimport React, {\n createRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from \"react\"\nimport styled from \"styled-components\"\nimport { useKeyboardListNavigation } from \"use-keyboard-list-navigation\"\nimport { Spinner } from \"../Spinner\"\nimport SearchIcon from \"@artsy/icons/SearchIcon\"\nimport CloseIcon from \"@artsy/icons/CloseIcon\"\nimport { usePosition, useContainsFocus, useClickOutside } from \"../../utils\"\nimport { useWidthOf } from \"../../utils/useWidthOf\"\nimport { Box, splitBoxProps } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { InputProps } from \"../Input\"\nimport { LabeledInput } from \"../LabeledInput\"\nimport { VisuallyHidden } from \"../VisuallyHidden\"\nimport { AutocompleteInputOption } from \"./AutocompleteInputOption\"\nimport { AutocompleteInputOptionLabel } from \"./AutocompleteInputOptionLabel\"\nimport { ResponsiveValue } from \"styled-system\"\nimport { themeGet } from \"@styled-system/theme-get\"\n\nexport interface AutocompleteFooterActions {\n /** Call to close dropdown */\n onClose(): void\n}\n\n/** Base option type — can be expanded */\nexport interface AutocompleteInputOptionType {\n text: string\n value: string\n}\n\ninterface State {\n open: boolean\n query: string\n}\n\ntype Action =\n | { type: \"OPEN\" }\n | { type: \"CLOSE\" }\n | { type: \"CLEAR\" }\n | { type: \"CHANGE\"; payload: { query: string } }\n | { type: \"SELECT\"; payload: { query: string } }\n\nconst reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"OPEN\":\n return { ...state, open: true }\n case \"CLOSE\":\n return { ...state, open: false }\n case \"CLEAR\":\n return { ...state, query: \"\" }\n case \"CHANGE\":\n return { ...state, query: action.payload.query, open: true }\n case \"SELECT\":\n return { ...state, query: action.payload.query, open: false }\n }\n}\n\nexport interface AutocompleteInputProps<T extends AutocompleteInputOptionType>\n extends Omit<InputProps, \"onSelect\" | \"onSubmit\"> {\n /** Optionally enable clamping (default: `false`) */\n clamp?: boolean\n defaultValue?: string\n dropdownMaxHeight?: ResponsiveValue<string | number>\n loading?: boolean\n header?: React.ReactNode\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n footer?:\n | React.ReactNode\n | ((dropdownActions: AutocompleteFooterActions) => void)\n /** Ref to the input; workaround generics */\n forwardRef?: React.Ref<HTMLInputElement>\n /** on <enter> when no option is selected */\n onSubmit?(query: string): void\n /** on <click> or <enter> when an option is selected */\n onSelect?(option: T, index: number): void\n /** on <click> of the 'x' (clear) button */\n onClear?(): void\n /** Callback that runs when options are hidden */\n onClose?(): void\n options: T[]\n renderOption?(\n option: T,\n i: number\n ): React.ReactElement<any, string | React.JSXElementConstructor<any>>\n}\n\n/** AutocompleteInput */\nexport const AutocompleteInput = <T extends AutocompleteInputOptionType>({\n clamp = false,\n defaultValue = \"\",\n dropdownMaxHeight = 308, // 308 = roughly 5.5 options\n flip = true,\n footer,\n forwardRef: forwardedRef,\n header,\n height,\n id,\n loading,\n onChange,\n onClear,\n onClose,\n onKeyDown,\n onSelect,\n onSubmit,\n options,\n renderOption = (option) => <AutocompleteInputOptionLabel {...option} />,\n ...rest\n}: AutocompleteInputProps<T>) => {\n const inputRef = useRef<HTMLInputElement | null>(null)\n const containerRef = useRef<HTMLDivElement | null>(null)\n const headerRef = useRef<HTMLDivElement | null>(null)\n const footerRef = useRef<HTMLDivElement | null>(null)\n\n const [boxProps, inputProps] = splitBoxProps(rest)\n\n const [state, dispatch] = useReducer(reducer, {\n open: false,\n query: defaultValue,\n })\n\n const optionsWithRefs = useMemo(() => {\n return options.map((option) => ({\n option,\n ref: createRef<HTMLButtonElement>(),\n }))\n }, [options])\n\n const resetUI = () => {\n setTimeout(() => {\n inputRef.current?.focus()\n reset()\n dispatch({ type: \"CLOSE\" })\n }, 100)\n }\n\n const handleSelect = (option: T, index: number) => {\n dispatch({ type: \"SELECT\", payload: { query: option.text } })\n inputRef.current?.focus()\n onSelect?.(option, index)\n }\n\n const { index, reset, set } = useKeyboardListNavigation({\n ref: containerRef,\n list: options,\n waitForInteractive: true,\n onEnter: ({ element: option, index: i, event }) => {\n event.preventDefault()\n event.stopPropagation()\n handleSelect(option, i)\n resetUI()\n },\n })\n\n const isDropdownVisible = state.open && options.length > 0\n\n // Reset keyboard navigation when options change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(reset, [options])\n\n // Reset keyboard navigation when query is empty\n useEffect(() => {\n if (state.query === \"\") reset()\n }, [reset, state.query])\n\n const { anchorRef, tooltipRef } = usePosition({\n active: isDropdownVisible,\n clamp,\n flip,\n key: options.length,\n offset: 10,\n position: \"bottom\",\n })\n\n const { width } = useWidthOf({ ref: anchorRef })\n\n const handleFocus = () => {\n reset()\n dispatch({ type: \"OPEN\" })\n }\n\n const handleMouseDown = (option: T, i: number) => () => {\n handleSelect(option, i)\n resetUI()\n }\n\n const handleClick = () => {\n dispatch({ type: \"OPEN\" })\n }\n\n const handleMouseEnter = (i: number) => () => {\n set({ cursor: i, interactive: true })\n }\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const {\n currentTarget: { value },\n } = event\n\n dispatch({ type: \"CHANGE\", payload: { query: value } })\n onChange?.(event)\n }\n\n const handleClearOrSubmit = () => {\n if (state.query === \"\") {\n onSubmit?.(state.query)\n return\n }\n\n dispatch({ type: \"CLEAR\" })\n inputRef.current?.focus()\n onClear?.()\n }\n\n const handleClose = useCallback(() => {\n dispatch({ type: \"CLOSE\" })\n reset()\n onClose?.()\n }, [onClose, reset])\n\n const ignoreFocusChangeRef = useRef<boolean>(false)\n const ignoreFocusChange = {\n onMouseDown: () => (ignoreFocusChangeRef.current = true),\n onMouseUp: () => (ignoreFocusChangeRef.current = false),\n }\n\n // Moves focus to different options when keyboard navigating using up/down\n useEffect(() => {\n const option = optionsWithRefs[index]\n option?.ref?.current?.focus()\n }, [index, optionsWithRefs])\n\n const handleFocusChange = useCallback(\n (focused: boolean) => {\n if (ignoreFocusChangeRef.current || focused || !isDropdownVisible) return\n\n handleClose()\n },\n\n [isDropdownVisible, handleClose]\n )\n\n // Handle closing the dropdown when clicking outside of the input\n // or when focus leaves the input completely\n const { ref: containsFocusRef } = useContainsFocus({\n onChange: handleFocusChange,\n })\n\n useClickOutside({\n ref: containsFocusRef,\n onClickOutside: handleClose,\n when: isDropdownVisible,\n type: \"click\",\n })\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n switch (event.key) {\n // Handle <Enter> when nothing is selected\n case \"Enter\":\n if (state.query !== \"\" && index === -1) {\n onSubmit?.(state.query)\n resetUI()\n }\n return\n\n // <Esc> to close dropdown\n case \"Escape\":\n event.preventDefault()\n event.stopPropagation()\n\n dispatch({ type: \"CLOSE\" })\n inputRef.current?.blur()\n\n return\n\n default:\n break\n }\n\n onKeyDown?.(event)\n }\n\n // Moves focus back to input when typing\n const handleContainerKeydown = (\n event: React.KeyboardEvent<HTMLDivElement>\n ) => {\n switch (event.key) {\n case \"Alt\":\n case \"ArrowDown\":\n case \"ArrowUp\":\n case \"Control\":\n case \"Enter\":\n case \"Meta\":\n case \"Shift\":\n case \"Tab\":\n // Ignore\n return\n\n case \"Escape\":\n event.preventDefault()\n event.stopPropagation()\n\n dispatch({ type: \"CLOSE\" })\n inputRef.current?.blur()\n reset()\n\n return\n\n default:\n inputRef.current?.focus()\n }\n }\n\n // Option that is being hovered or keyed into\n const staged = options[index]\n\n return (\n <Box\n ref={composeRefs(containerRef, containsFocusRef) as any}\n onKeyDown={handleContainerKeydown}\n {...boxProps}\n >\n <LabeledInput\n ref={composeRefs(inputRef, anchorRef, forwardedRef) as any}\n role=\"combobox\"\n aria-expanded={isDropdownVisible}\n aria-autocomplete=\"list\"\n {...(id ? { id, \"aria-describedby\": `${id}__assistiveHint` } : {})}\n label={\n loading ? (\n <Box width={18}>\n <Spinner size=\"small\" />\n </Box>\n ) : state.query ? (\n <Clickable\n onClick={handleClearOrSubmit}\n height=\"100%\"\n display=\"flex\"\n alignItems=\"center\"\n aria-label=\"Clear input\"\n >\n <CloseIcon fill=\"black60\" aria-hidden />\n </Clickable>\n ) : (\n <SearchIcon fill=\"black60\" aria-hidden />\n )\n }\n value={staged?.text ?? state.query}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleInputKeydown}\n onClick={handleClick}\n autoComplete=\"off\"\n height={height}\n {...inputProps}\n />\n\n {isDropdownVisible && (\n <AutocompleteInputDropdown\n ref={tooltipRef as any}\n role=\"listbox\"\n width={width}\n >\n <div ref={headerRef} {...ignoreFocusChange}>\n {header}\n </div>\n\n <AutocompleteInputOptions maxHeight={dropdownMaxHeight}>\n {optionsWithRefs.map(({ option, ref }, i) => {\n return (\n <AutocompleteInputOption\n key={i}\n ref={ref}\n role=\"option\"\n aria-selected={i === index}\n aria-posinset={i + 1}\n aria-setsize={options.length}\n onMouseDown={handleMouseDown(option, i)}\n onMouseEnter={handleMouseEnter(i)}\n selected={i === index}\n tabIndex={-1}\n >\n {renderOption(option, i)}\n </AutocompleteInputOption>\n )\n })}\n </AutocompleteInputOptions>\n\n <div ref={footerRef} {...ignoreFocusChange}>\n {typeof footer === \"function\"\n ? footer({ onClose: handleClose })\n : footer}\n </div>\n </AutocompleteInputDropdown>\n )}\n\n <VisuallyHidden {...(id ? { id: `${id}__assistiveHint` } : {})}>\n When autocomplete results are available use up and down arrows to review\n and enter to select. Touch device users, explore by touch or with swipe\n gestures.\n </VisuallyHidden>\n\n {isDropdownVisible && (\n <VisuallyHidden role=\"status\" aria-atomic=\"true\" aria-live=\"polite\">\n {options.length === 1\n ? `1 result is available`\n : `${options.length} results are available`}\n </VisuallyHidden>\n )}\n </Box>\n )\n}\n\nconst AutocompleteInputDropdown = styled(Box)`\n box-shadow: ${themeGet(\"colors.dropShadow\")};\n z-index: 1;\n`\n\nconst AutocompleteInputOptions = styled(Box)`\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n`\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AAQA,IAAAG,iBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,0BAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,UAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,IAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AAEA,IAAAY,aAAA,GAAAZ,OAAA;AACA,IAAAa,eAAA,GAAAb,OAAA;AACA,IAAAc,wBAAA,GAAAd,OAAA;AACA,IAAAe,6BAAA,GAAAf,OAAA;AAEA,IAAAgB,SAAA,GAAAhB,OAAA;AAAmD,IAAAiB,SAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAjB,wBAAAqB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,4BAAAG,OAAA,EAAAH,GAAA,UAAAI,KAAA,GAAAT,wBAAA,CAAAC,WAAA,OAAAQ,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAL,GAAA,YAAAI,KAAA,CAAAE,GAAA,CAAAN,GAAA,SAAAO,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAZ,GAAA,QAAAY,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,GAAA,EAAAY,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,GAAA,EAAAY,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAZ,GAAA,CAAAY,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAH,GAAA,MAAAI,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAjB,GAAA,EAAAO,MAAA,YAAAA,MAAA;AAAA,SAAA/B,uBAAAwB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAG,OAAA,EAAAH,GAAA;AAAA,SAAAE,QAAAF,GAAA,sCAAAE,OAAA,wBAAAgB,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAnB,GAAA,kBAAAA,GAAA,gBAAAA,GAAA,WAAAA,GAAA,yBAAAkB,MAAA,IAAAlB,GAAA,CAAAoB,WAAA,KAAAF,MAAA,IAAAlB,GAAA,KAAAkB,MAAA,CAAAL,SAAA,qBAAAb,GAAA,KAAAE,OAAA,CAAAF,GAAA;AAAA,SAAAqB,SAAA,IAAAA,QAAA,GAAAZ,MAAA,CAAAa,MAAA,GAAAb,MAAA,CAAAa,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAb,GAAA,IAAAgB,MAAA,QAAAnB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAa,MAAA,EAAAhB,GAAA,KAAAY,MAAA,CAAAZ,GAAA,IAAAgB,MAAA,CAAAhB,GAAA,gBAAAY,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAAA,SAAAI,eAAAC,GAAA,EAAAN,CAAA,WAAAO,eAAA,CAAAD,GAAA,KAAAE,qBAAA,CAAAF,GAAA,EAAAN,CAAA,KAAAS,2BAAA,CAAAH,GAAA,EAAAN,CAAA,KAAAU,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAG,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAA/B,MAAA,CAAAI,SAAA,CAAA4B,QAAA,CAAA1B,IAAA,CAAAsB,CAAA,EAAAK,KAAA,aAAAF,CAAA,iBAAAH,CAAA,CAAAjB,WAAA,EAAAoB,CAAA,GAAAH,CAAA,CAAAjB,WAAA,CAAAuB,IAAA,MAAAH,CAAA,cAAAA,CAAA,mBAAAI,KAAA,CAAAC,IAAA,CAAAR,CAAA,OAAAG,CAAA,+DAAAM,IAAA,CAAAN,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAR,GAAA,EAAAgB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAhB,GAAA,CAAAJ,MAAA,EAAAoB,GAAA,GAAAhB,GAAA,CAAAJ,MAAA,WAAAF,CAAA,MAAAuB,IAAA,OAAAJ,KAAA,CAAAG,GAAA,GAAAtB,CAAA,GAAAsB,GAAA,EAAAtB,CAAA,MAAAuB,IAAA,CAAAvB,CAAA,IAAAM,GAAA,CAAAN,CAAA,YAAAuB,IAAA;AAAA,SAAAf,sBAAAF,GAAA,EAAAN,CAAA,QAAAwB,EAAA,WAAAlB,GAAA,gCAAAb,MAAA,IAAAa,GAAA,CAAAb,MAAA,CAAAC,QAAA,KAAAY,GAAA,4BAAAkB,EAAA,QAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,IAAA,OAAAC,EAAA,OAAAC,EAAA,iBAAAJ,EAAA,IAAAH,EAAA,GAAAA,EAAA,CAAAlC,IAAA,CAAAgB,GAAA,GAAA0B,IAAA,QAAAhC,CAAA,QAAAhB,MAAA,CAAAwC,EAAA,MAAAA,EAAA,UAAAM,EAAA,uBAAAA,EAAA,IAAAL,EAAA,GAAAE,EAAA,CAAArC,IAAA,CAAAkC,EAAA,GAAAS,IAAA,MAAAJ,IAAA,CAAAK,IAAA,CAAAT,EAAA,CAAAU,KAAA,GAAAN,IAAA,CAAA3B,MAAA,KAAAF,CAAA,GAAA8B,EAAA,sBAAAM,GAAA,IAAAL,EAAA,OAAAL,EAAA,GAAAU,GAAA,yBAAAN,EAAA,YAAAN,EAAA,CAAAa,MAAA,KAAAT,EAAA,GAAAJ,EAAA,CAAAa,MAAA,IAAArD,MAAA,CAAA4C,EAAA,MAAAA,EAAA,2BAAAG,EAAA,QAAAL,EAAA,aAAAG,IAAA;AAAA,SAAAtB,gBAAAD,GAAA,QAAAa,KAAA,CAAAmB,OAAA,CAAAhC,GAAA,UAAAA,GAAA;AAAA,SAAAiC,yBAAApC,MAAA,EAAAqC,QAAA,QAAArC,MAAA,yBAAAJ,MAAA,GAAA0C,6BAAA,CAAAtC,MAAA,EAAAqC,QAAA,OAAArD,GAAA,EAAAa,CAAA,MAAAhB,MAAA,CAAA0D,qBAAA,QAAAC,gBAAA,GAAA3D,MAAA,CAAA0D,qBAAA,CAAAvC,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAA2C,gBAAA,CAAAzC,MAAA,EAAAF,CAAA,MAAAb,GAAA,GAAAwD,gBAAA,CAAA3C,CAAA,OAAAwC,QAAA,CAAAI,OAAA,CAAAzD,GAAA,uBAAAH,MAAA,CAAAI,SAAA,CAAAyD,oBAAA,CAAAvD,IAAA,CAAAa,MAAA,EAAAhB,GAAA,aAAAY,MAAA,CAAAZ,GAAA,IAAAgB,MAAA,CAAAhB,GAAA,cAAAY,MAAA;AAAA,SAAA0C,8BAAAtC,MAAA,EAAAqC,QAAA,QAAArC,MAAA,yBAAAJ,MAAA,WAAA+C,UAAA,GAAA9D,MAAA,CAAA+D,IAAA,CAAA5C,MAAA,OAAAhB,GAAA,EAAAa,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAA8C,UAAA,CAAA5C,MAAA,EAAAF,CAAA,MAAAb,GAAA,GAAA2D,UAAA,CAAA9C,CAAA,OAAAwC,QAAA,CAAAI,OAAA,CAAAzD,GAAA,kBAAAY,MAAA,CAAAZ,GAAA,IAAAgB,MAAA,CAAAhB,GAAA,YAAAY,MAAA;AAAA,SAAAiD,QAAAC,MAAA,EAAAC,cAAA,QAAAH,IAAA,GAAA/D,MAAA,CAAA+D,IAAA,CAAAE,MAAA,OAAAjE,MAAA,CAAA0D,qBAAA,QAAAS,OAAA,GAAAnE,MAAA,CAAA0D,qBAAA,CAAAO,MAAA,GAAAC,cAAA,KAAAC,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAArE,MAAA,CAAAE,wBAAA,CAAA+D,MAAA,EAAAI,GAAA,EAAAC,UAAA,OAAAP,IAAA,CAAAb,IAAA,CAAA9B,KAAA,CAAA2C,IAAA,EAAAI,OAAA,YAAAJ,IAAA;AAAA,SAAAQ,cAAAxD,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAgD,OAAA,CAAAhE,MAAA,CAAAmB,MAAA,OAAAqD,OAAA,WAAArE,GAAA,IAAAsE,eAAA,CAAA1D,MAAA,EAAAZ,GAAA,EAAAgB,MAAA,CAAAhB,GAAA,SAAAH,MAAA,CAAA0E,yBAAA,GAAA1E,MAAA,CAAA2E,gBAAA,CAAA5D,MAAA,EAAAf,MAAA,CAAA0E,yBAAA,CAAAvD,MAAA,KAAA6C,OAAA,CAAAhE,MAAA,CAAAmB,MAAA,GAAAqD,OAAA,WAAArE,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAc,MAAA,EAAAZ,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAiB,MAAA,EAAAhB,GAAA,iBAAAY,MAAA;AAAA,SAAA0D,gBAAAlF,GAAA,EAAAY,GAAA,EAAAgD,KAAA,IAAAhD,GAAA,GAAAyE,cAAA,CAAAzE,GAAA,OAAAA,GAAA,IAAAZ,GAAA,IAAAS,MAAA,CAAAC,cAAA,CAAAV,GAAA,EAAAY,GAAA,IAAAgD,KAAA,EAAAA,KAAA,EAAAmB,UAAA,QAAAO,YAAA,QAAAC,QAAA,oBAAAvF,GAAA,CAAAY,GAAA,IAAAgD,KAAA,WAAA5D,GAAA;AAAA,SAAAqF,eAAAG,GAAA,QAAA5E,GAAA,GAAA6E,YAAA,CAAAD,GAAA,oBAAAtF,OAAA,CAAAU,GAAA,iBAAAA,GAAA,GAAA8E,MAAA,CAAA9E,GAAA;AAAA,SAAA6E,aAAAE,KAAA,EAAAC,IAAA,QAAA1F,OAAA,CAAAyF,KAAA,kBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAzE,MAAA,CAAA4E,WAAA,OAAAD,IAAA,KAAAE,SAAA,QAAAC,GAAA,GAAAH,IAAA,CAAA9E,IAAA,CAAA4E,KAAA,EAAAC,IAAA,oBAAA1F,OAAA,CAAA8F,GAAA,uBAAAA,GAAA,YAAA5D,SAAA,4DAAAwD,IAAA,gBAAAF,MAAA,GAAAO,MAAA,EAAAN,KAAA;AAOnD;;AAkBA,IAAMO,OAAO,GAAG,SAAVA,OAAOA,CAAIC,KAAY,EAAEC,MAAc,EAAY;EACvD,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,MAAM;MACT,OAAArB,aAAA,CAAAA,aAAA,KAAYmB,KAAK;QAAEG,IAAI,EAAE;MAAI;IAC/B,KAAK,OAAO;MACV,OAAAtB,aAAA,CAAAA,aAAA,KAAYmB,KAAK;QAAEG,IAAI,EAAE;MAAK;IAChC,KAAK,OAAO;MACV,OAAAtB,aAAA,CAAAA,aAAA,KAAYmB,KAAK;QAAEI,KAAK,EAAE;MAAE;IAC9B,KAAK,QAAQ;MACX,OAAAvB,aAAA,CAAAA,aAAA,KAAYmB,KAAK;QAAEI,KAAK,EAAEH,MAAM,CAACI,OAAO,CAACD,KAAK;QAAED,IAAI,EAAE;MAAI;IAC5D,KAAK,QAAQ;MACX,OAAAtB,aAAA,CAAAA,aAAA,KAAYmB,KAAK;QAAEI,KAAK,EAAEH,MAAM,CAACI,OAAO,CAACD,KAAK;QAAED,IAAI,EAAE;MAAK;EAAE;AAEnE,CAAC;AAgCD;AACO,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAoBG;EAAA,IAAAC,YAAA;EAAA,IAAAC,UAAA,GAAAF,IAAA,CAnB/BG,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,KAAK,GAAAA,UAAA;IAAAE,iBAAA,GAAAJ,IAAA,CACbK,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,EAAE,GAAAA,iBAAA;IAAAE,qBAAA,GAAAN,IAAA,CACjBO,iBAAiB;IAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,GAAG,GAAAA,qBAAA;IAAAE,SAAA,GAAAR,IAAA,CACvBS,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,IAAI,GAAAA,SAAA;IACXE,MAAM,GAAAV,IAAA,CAANU,MAAM;IACMC,YAAY,GAAAX,IAAA,CAAxBY,UAAU;IACVC,MAAM,GAAAb,IAAA,CAANa,MAAM;IACNC,MAAM,GAAAd,IAAA,CAANc,MAAM;IACNC,EAAE,GAAAf,IAAA,CAAFe,EAAE;IACFC,OAAO,GAAAhB,IAAA,CAAPgB,OAAO;IACPC,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ;IACRC,OAAO,GAAAlB,IAAA,CAAPkB,OAAO;IACPC,OAAO,GAAAnB,IAAA,CAAPmB,OAAO;IACPC,SAAS,GAAApB,IAAA,CAAToB,SAAS;IACTC,QAAQ,GAAArB,IAAA,CAARqB,QAAQ;IACRC,QAAQ,GAAAtB,IAAA,CAARsB,QAAQ;IACRC,OAAO,GAAAvB,IAAA,CAAPuB,OAAO;IAAAC,iBAAA,GAAAxB,IAAA,CACPyB,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,UAACE,MAAM;MAAA,oBAAK1J,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAAC7I,6BAAA,CAAA8I,4BAA4B,EAAKF,MAAM,CAAI;IAAA,IAAAF,iBAAA;IACpEK,IAAI,GAAAvE,wBAAA,CAAA0C,IAAA,EAAAhH,SAAA;EAEP,IAAM8I,QAAQ,GAAG,IAAAC,aAAM,EAA0B,IAAI,CAAC;EACtD,IAAMC,YAAY,GAAG,IAAAD,aAAM,EAAwB,IAAI,CAAC;EACxD,IAAME,SAAS,GAAG,IAAAF,aAAM,EAAwB,IAAI,CAAC;EACrD,IAAMG,SAAS,GAAG,IAAAH,aAAM,EAAwB,IAAI,CAAC;EAErD,IAAAI,cAAA,GAA+B,IAAAC,kBAAa,EAACP,IAAI,CAAC;IAAAQ,eAAA,GAAAjH,cAAA,CAAA+G,cAAA;IAA3CG,QAAQ,GAAAD,eAAA;IAAEE,UAAU,GAAAF,eAAA;EAE3B,IAAAG,WAAA,GAA0B,IAAAC,iBAAU,EAACjD,OAAO,EAAE;MAC5CI,IAAI,EAAE,KAAK;MACXC,KAAK,EAAEQ;IACT,CAAC,CAAC;IAAAqC,YAAA,GAAAtH,cAAA,CAAAoH,WAAA;IAHK/C,KAAK,GAAAiD,YAAA;IAAEC,QAAQ,GAAAD,YAAA;EAKtB,IAAME,eAAe,GAAG,IAAAC,cAAO,EAAC,YAAM;IACpC,OAAOtB,OAAO,CAACuB,GAAG,CAAC,UAACpB,MAAM;MAAA,OAAM;QAC9BA,MAAM,EAANA,MAAM;QACNqB,GAAG,eAAE,IAAAC,gBAAS;MAChB,CAAC;IAAA,CAAC,CAAC;EACL,CAAC,EAAE,CAACzB,OAAO,CAAC,CAAC;EAEb,IAAM0B,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;IACpBC,UAAU,CAAC,YAAM;MAAA,IAAAC,iBAAA;MACf,CAAAA,iBAAA,GAAArB,QAAQ,CAACsB,OAAO,cAAAD,iBAAA,uBAAhBA,iBAAA,CAAkBE,KAAK,EAAE;MACzBC,KAAK,EAAE;MACPX,QAAQ,CAAC;QAAEhD,IAAI,EAAE;MAAQ,CAAC,CAAC;IAC7B,CAAC,EAAE,GAAG,CAAC;EACT,CAAC;EAED,IAAM4D,YAAY,GAAG,SAAfA,YAAYA,CAAI7B,MAAS,EAAE8B,KAAa,EAAK;IAAA,IAAAC,kBAAA;IACjDd,QAAQ,CAAC;MAAEhD,IAAI,EAAE,QAAQ;MAAEG,OAAO,EAAE;QAAED,KAAK,EAAE6B,MAAM,CAACgC;MAAK;IAAE,CAAC,CAAC;IAC7D,CAAAD,kBAAA,GAAA3B,QAAQ,CAACsB,OAAO,cAAAK,kBAAA,uBAAhBA,kBAAA,CAAkBJ,KAAK,EAAE;IACzBhC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGK,MAAM,EAAE8B,KAAK,CAAC;EAC3B,CAAC;EAED,IAAAG,qBAAA,GAA8B,IAAAC,oDAAyB,EAAC;MACtDb,GAAG,EAAEf,YAAY;MACjB6B,IAAI,EAAEtC,OAAO;MACbuC,kBAAkB,EAAE,IAAI;MACxBC,OAAO,EAAE,SAAAA,QAAAC,KAAA,EAA0C;QAAA,IAA9BtC,MAAM,GAAAsC,KAAA,CAAfC,OAAO;UAAiBlJ,CAAC,GAAAiJ,KAAA,CAARR,KAAK;UAAKU,KAAK,GAAAF,KAAA,CAALE,KAAK;QAC1CA,KAAK,CAACC,cAAc,EAAE;QACtBD,KAAK,CAACE,eAAe,EAAE;QACvBb,YAAY,CAAC7B,MAAM,EAAE3G,CAAC,CAAC;QACvBkI,OAAO,EAAE;MACX;IACF,CAAC,CAAC;IAVMO,KAAK,GAAAG,qBAAA,CAALH,KAAK;IAAEF,KAAK,GAAAK,qBAAA,CAALL,KAAK;IAAE/I,GAAG,GAAAoJ,qBAAA,CAAHpJ,GAAG;EAYzB,IAAM8J,iBAAiB,GAAG5E,KAAK,CAACG,IAAI,IAAI2B,OAAO,CAACtG,MAAM,GAAG,CAAC;;EAE1D;EACA;EACA,IAAAqJ,gBAAS,EAAChB,KAAK,EAAE,CAAC/B,OAAO,CAAC,CAAC;;EAE3B;EACA,IAAA+C,gBAAS,EAAC,YAAM;IACd,IAAI7E,KAAK,CAACI,KAAK,KAAK,EAAE,EAAEyD,KAAK,EAAE;EACjC,CAAC,EAAE,CAACA,KAAK,EAAE7D,KAAK,CAACI,KAAK,CAAC,CAAC;EAExB,IAAA0E,YAAA,GAAkC,IAAAC,kBAAW,EAAC;MAC5CC,MAAM,EAAEJ,iBAAiB;MACzBlE,KAAK,EAALA,KAAK;MACLM,IAAI,EAAJA,IAAI;MACJvG,GAAG,EAAEqH,OAAO,CAACtG,MAAM;MACnByJ,MAAM,EAAE,EAAE;MACVC,QAAQ,EAAE;IACZ,CAAC,CAAC;IAPMC,SAAS,GAAAL,YAAA,CAATK,SAAS;IAAEC,UAAU,GAAAN,YAAA,CAAVM,UAAU;EAS7B,IAAAC,WAAA,GAAkB,IAAAC,uBAAU,EAAC;MAAEhC,GAAG,EAAE6B;IAAU,CAAC,CAAC;IAAxCI,KAAK,GAAAF,WAAA,CAALE,KAAK;EAEb,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACxB3B,KAAK,EAAE;IACPX,QAAQ,CAAC;MAAEhD,IAAI,EAAE;IAAO,CAAC,CAAC;EAC5B,CAAC;EAED,IAAMuF,eAAe,GAAG,SAAlBA,eAAeA,CAAIxD,MAAS,EAAE3G,CAAS;IAAA,OAAK,YAAM;MACtDwI,YAAY,CAAC7B,MAAM,EAAE3G,CAAC,CAAC;MACvBkI,OAAO,EAAE;IACX,CAAC;EAAA;EAED,IAAMkC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACxBxC,QAAQ,CAAC;MAAEhD,IAAI,EAAE;IAAO,CAAC,CAAC;EAC5B,CAAC;EAED,IAAMyF,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIrK,CAAS;IAAA,OAAK,YAAM;MAC5CR,GAAG,CAAC;QAAE8K,MAAM,EAAEtK,CAAC;QAAEuK,WAAW,EAAE;MAAK,CAAC,CAAC;IACvC,CAAC;EAAA;EAED,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIrB,KAA0C,EAAK;IACnE,IACmBhH,KAAK,GACpBgH,KAAK,CADPsB,aAAa,CAAItI,KAAK;IAGxByF,QAAQ,CAAC;MAAEhD,IAAI,EAAE,QAAQ;MAAEG,OAAO,EAAE;QAAED,KAAK,EAAE3C;MAAM;IAAE,CAAC,CAAC;IACvD+D,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGiD,KAAK,CAAC;EACnB,CAAC;EAED,IAAMuB,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;IAAA,IAAAC,kBAAA;IAChC,IAAIjG,KAAK,CAACI,KAAK,KAAK,EAAE,EAAE;MACtByB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG7B,KAAK,CAACI,KAAK,CAAC;MACvB;IACF;IAEA8C,QAAQ,CAAC;MAAEhD,IAAI,EAAE;IAAQ,CAAC,CAAC;IAC3B,CAAA+F,kBAAA,GAAA5D,QAAQ,CAACsB,OAAO,cAAAsC,kBAAA,uBAAhBA,kBAAA,CAAkBrC,KAAK,EAAE;IACzBnC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,EAAI;EACb,CAAC;EAED,IAAMyE,WAAW,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACpCjD,QAAQ,CAAC;MAAEhD,IAAI,EAAE;IAAQ,CAAC,CAAC;IAC3B2D,KAAK,EAAE;IACPnC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,EAAI;EACb,CAAC,EAAE,CAACA,OAAO,EAAEmC,KAAK,CAAC,CAAC;EAEpB,IAAMuC,oBAAoB,GAAG,IAAA9D,aAAM,EAAU,KAAK,CAAC;EACnD,IAAM+D,iBAAiB,GAAG;IACxBC,WAAW,EAAE,SAAAA,YAAA;MAAA,OAAOF,oBAAoB,CAACzC,OAAO,GAAG,IAAI;IAAA,CAAC;IACxD4C,SAAS,EAAE,SAAAA,UAAA;MAAA,OAAOH,oBAAoB,CAACzC,OAAO,GAAG,KAAK;IAAA;EACxD,CAAC;;EAED;EACA,IAAAkB,gBAAS,EAAC,YAAM;IAAA,IAAA2B,WAAA,EAAAC,mBAAA;IACd,IAAMxE,MAAM,GAAGkB,eAAe,CAACY,KAAK,CAAC;IACrC9B,MAAM,aAANA,MAAM,wBAAAuE,WAAA,GAANvE,MAAM,CAAEqB,GAAG,cAAAkD,WAAA,wBAAAC,mBAAA,GAAXD,WAAA,CAAa7C,OAAO,cAAA8C,mBAAA,uBAApBA,mBAAA,CAAsB7C,KAAK,EAAE;EAC/B,CAAC,EAAE,CAACG,KAAK,EAAEZ,eAAe,CAAC,CAAC;EAE5B,IAAMuD,iBAAiB,GAAG,IAAAP,kBAAW,EACnC,UAACQ,OAAgB,EAAK;IACpB,IAAIP,oBAAoB,CAACzC,OAAO,IAAIgD,OAAO,IAAI,CAAC/B,iBAAiB,EAAE;IAEnEsB,WAAW,EAAE;EACf,CAAC,EAED,CAACtB,iBAAiB,EAAEsB,WAAW,CAAC,CACjC;;EAED;EACA;EACA,IAAAU,iBAAA,GAAkC,IAAAC,uBAAgB,EAAC;MACjDrF,QAAQ,EAAEkF;IACZ,CAAC,CAAC;IAFWI,gBAAgB,GAAAF,iBAAA,CAArBtD,GAAG;EAIX,IAAAyD,sBAAe,EAAC;IACdzD,GAAG,EAAEwD,gBAAgB;IACrBE,cAAc,EAAEd,WAAW;IAC3Be,IAAI,EAAErC,iBAAiB;IACvB1E,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,IAAMgH,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIzC,KAA4C,EAAK;IAAA,IAAA0C,kBAAA;IAC3E,QAAQ1C,KAAK,CAAChK,GAAG;MACf;MACA,KAAK,OAAO;QACV,IAAIuF,KAAK,CAACI,KAAK,KAAK,EAAE,IAAI2D,KAAK,KAAK,CAAC,CAAC,EAAE;UACtClC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG7B,KAAK,CAACI,KAAK,CAAC;UACvBoD,OAAO,EAAE;QACX;QACA;;MAEF;MACA,KAAK,QAAQ;QACXiB,KAAK,CAACC,cAAc,EAAE;QACtBD,KAAK,CAACE,eAAe,EAAE;QAEvBzB,QAAQ,CAAC;UAAEhD,IAAI,EAAE;QAAQ,CAAC,CAAC;QAC3B,CAAAiH,kBAAA,GAAA9E,QAAQ,CAACsB,OAAO,cAAAwD,kBAAA,uBAAhBA,kBAAA,CAAkBC,IAAI,EAAE;QAExB;MAEF;QACE;IAAK;IAGTzF,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAG8C,KAAK,CAAC;EACpB,CAAC;;EAED;EACA,IAAM4C,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAC1B5C,KAA0C,EACvC;IAAA,IAAA6C,kBAAA,EAAAC,kBAAA;IACH,QAAQ9C,KAAK,CAAChK,GAAG;MACf,KAAK,KAAK;MACV,KAAK,WAAW;MAChB,KAAK,SAAS;MACd,KAAK,SAAS;MACd,KAAK,OAAO;MACZ,KAAK,MAAM;MACX,KAAK,OAAO;MACZ,KAAK,KAAK;QACR;QACA;MAEF,KAAK,QAAQ;QACXgK,KAAK,CAACC,cAAc,EAAE;QACtBD,KAAK,CAACE,eAAe,EAAE;QAEvBzB,QAAQ,CAAC;UAAEhD,IAAI,EAAE;QAAQ,CAAC,CAAC;QAC3B,CAAAoH,kBAAA,GAAAjF,QAAQ,CAACsB,OAAO,cAAA2D,kBAAA,uBAAhBA,kBAAA,CAAkBF,IAAI,EAAE;QACxBvD,KAAK,EAAE;QAEP;MAEF;QACE,CAAA0D,kBAAA,GAAAlF,QAAQ,CAACsB,OAAO,cAAA4D,kBAAA,uBAAhBA,kBAAA,CAAkB3D,KAAK,EAAE;IAAA;EAE/B,CAAC;;EAED;EACA,IAAM4D,MAAM,GAAG1F,OAAO,CAACiC,KAAK,CAAC;EAE7B,oBACExL,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAAClJ,IAAA,CAAAyO,GAAG,EAAAvM,QAAA;IACFoI,GAAG,EAAE,IAAAoE,yBAAW,EAACnF,YAAY,EAAEuE,gBAAgB,CAAS;IACxDnF,SAAS,EAAE0F;EAAuB,GAC9BxE,QAAQ,gBAEZtK,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAAChJ,aAAA,CAAAyO,YAAY,EAAAzM,QAAA;IACXoI,GAAG,EAAE,IAAAoE,yBAAW,EAACrF,QAAQ,EAAE8C,SAAS,EAAEjE,YAAY,CAAS;IAC3D0G,IAAI,EAAC,UAAU;IACf,iBAAehD,iBAAkB;IACjC,qBAAkB;EAAM,GACnBtD,EAAE,GAAG;IAAEA,EAAE,EAAFA,EAAE;IAAE,kBAAkB,KAAAuG,MAAA,CAAKvG,EAAE;EAAkB,CAAC,GAAG,CAAC,CAAC;IACjEwG,KAAK,EACHvG,OAAO,gBACLhJ,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAAClJ,IAAA,CAAAyO,GAAG;MAAClC,KAAK,EAAE;IAAG,gBACbhN,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAACvJ,QAAA,CAAAoP,OAAO;MAACC,IAAI,EAAC;IAAO,EAAG,CACpB,GACJhI,KAAK,CAACI,KAAK,gBACb7H,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAACjJ,UAAA,CAAAgP,SAAS;MACRC,OAAO,EAAElC,mBAAoB;MAC7B3E,MAAM,EAAC,MAAM;MACb8G,OAAO,EAAC,MAAM;MACdC,UAAU,EAAC,QAAQ;MACnB,cAAW;IAAa,gBAExB7P,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAACrJ,UAAA,CAAAmB,OAAS;MAACqO,IAAI,EAAC,SAAS;MAAC;IAAW,EAAG,CAC9B,gBAEZ9P,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAACtJ,WAAA,CAAAoB,OAAU;MAACqO,IAAI,EAAC,SAAS;MAAC;IAAW,EAEzC;IACD5K,KAAK,GAAA+C,YAAA,GAAEgH,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEvD,IAAI,cAAAzD,YAAA,cAAAA,YAAA,GAAIR,KAAK,CAACI,KAAM;IACnCoB,QAAQ,EAAEsE,YAAa;IACvBwC,OAAO,EAAE9C,WAAY;IACrB7D,SAAS,EAAEuF,kBAAmB;IAC9BgB,OAAO,EAAExC,WAAY;IACrB6C,YAAY,EAAC,KAAK;IAClBlH,MAAM,EAAEA;EAAO,GACXyB,UAAU,EACd,EAED8B,iBAAiB,iBAChBrM,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAACsG,yBAAyB;IACxBlF,GAAG,EAAE8B,UAAkB;IACvBwC,IAAI,EAAC,SAAS;IACdrC,KAAK,EAAEA;EAAM,gBAEbhN,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,QAAAhH,QAAA;IAAKoI,GAAG,EAAEd;EAAU,GAAK6D,iBAAiB,GACvCjF,MAAM,CACH,eAEN7I,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAACuG,wBAAwB;IAACC,SAAS,EAAE5H;EAAkB,GACpDqC,eAAe,CAACE,GAAG,CAAC,UAAAsF,KAAA,EAAkBrN,CAAC,EAAK;IAAA,IAArB2G,MAAM,GAAA0G,KAAA,CAAN1G,MAAM;MAAEqB,GAAG,GAAAqF,KAAA,CAAHrF,GAAG;IACjC,oBACE/K,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAAC9I,wBAAA,CAAAwP,uBAAuB;MACtBnO,GAAG,EAAEa,CAAE;MACPgI,GAAG,EAAEA,GAAI;MACTsE,IAAI,EAAC,QAAQ;MACb,iBAAetM,CAAC,KAAKyI,KAAM;MAC3B,iBAAezI,CAAC,GAAG,CAAE;MACrB,gBAAcwG,OAAO,CAACtG,MAAO;MAC7B8K,WAAW,EAAEb,eAAe,CAACxD,MAAM,EAAE3G,CAAC,CAAE;MACxCuN,YAAY,EAAElD,gBAAgB,CAACrK,CAAC,CAAE;MAClCwN,QAAQ,EAAExN,CAAC,KAAKyI,KAAM;MACtBgF,QAAQ,EAAE,CAAC;IAAE,GAEZ/G,YAAY,CAACC,MAAM,EAAE3G,CAAC,CAAC,CACA;EAE9B,CAAC,CAAC,CACuB,eAE3B/C,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,QAAAhH,QAAA;IAAKoI,GAAG,EAAEb;EAAU,GAAK4D,iBAAiB,GACvC,OAAOpF,MAAM,KAAK,UAAU,GACzBA,MAAM,CAAC;IAAES,OAAO,EAAEwE;EAAY,CAAC,CAAC,GAChCjF,MAAM,CACN,CAET,eAED1I,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAAC/I,eAAA,CAAA6P,cAAc,EAAM1H,EAAE,GAAG;IAAEA,EAAE,KAAAuG,MAAA,CAAKvG,EAAE;EAAkB,CAAC,GAAG,CAAC,CAAC,EAAG,4JAIhE,CAAiB,EAEhBsD,iBAAiB,iBAChBrM,MAAA,CAAAyB,OAAA,CAAAkI,aAAA,CAAC/I,eAAA,CAAA6P,cAAc;IAACpB,IAAI,EAAC,QAAQ;IAAC,eAAY,MAAM;IAAC,aAAU;EAAQ,GAChE9F,OAAO,CAACtG,MAAM,KAAK,CAAC,gCAAAqM,MAAA,CAEd/F,OAAO,CAACtG,MAAM,2BAAwB,CAEhD,CACG;AAEV,CAAC;AAAAyN,OAAA,CAAA3I,iBAAA,GAAAA,iBAAA;AAnUYA,iBAAiB,CAAA4I,WAAA;AAqU9B,IAAMV,yBAAyB,GAAG,IAAAW,yBAAM,EAAC1B,QAAG,CAAC,CAAA2B,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA,mCAC7B,IAAAC,kBAAQ,EAAC,mBAAmB,CAAC,CAE5C;AAED,IAAMb,wBAAwB,GAAG,IAAAU,yBAAM,EAAC1B,QAAG,CAAC,CAAA2B,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA,yDAG3C"}
|
|
@@ -24,8 +24,8 @@ export declare type BaseTabProps = TextProps & {
|
|
|
24
24
|
* or `<BaseTab as={Clickable} onClick={handleClick}>Foo</BaseTab>`
|
|
25
25
|
*/
|
|
26
26
|
export declare const BaseTab: import("styled-components").StyledComponentClass<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & import("..").BoxProps & import("styled-system").TypographyProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & Omit<import("styled-system").ColorProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol>, "color"> & {
|
|
27
|
-
variant?: import("styled-system").ResponsiveValue<"
|
|
28
|
-
textColor?: import("styled-system").ResponsiveValue<"black100" | "black60" | "black30" | "black15" | "black10" | "black5" | "white100" | "blue150" | "blue100" | "brand" | "blue10" | "green150" | "green100" | "green10" | "yellow150" | "yellow100" | "yellow10" | "orange150" | "orange100" | "orange10" | "red150" | "red100" | "red10", Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
27
|
+
variant?: import("styled-system").ResponsiveValue<"xxxl" | "xxl" | "xl" | "lg" | "lg-display" | "md" | "sm" | "sm-display" | "xs" | "xxs" | "bq", Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
28
|
+
textColor?: import("styled-system").ResponsiveValue<"textShadow" | "black100" | "black60" | "black30" | "black15" | "black10" | "black5" | "white100" | "blue200" | "blue150" | "blue100" | "brand" | "blue15" | "blue10" | "green150" | "green100" | "green10" | "yellow150" | "yellow100" | "yellow10" | "orange150" | "orange100" | "orange10" | "red150" | "red100" | "red10" | "dropShadow" | "innerShadow" | "flatShadow", Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
29
29
|
lineClamp?: number | undefined;
|
|
30
30
|
} & {
|
|
31
31
|
hyphenate?: boolean | undefined;
|
|
@@ -33,8 +33,8 @@ export declare const BaseTab: import("styled-components").StyledComponentClass<R
|
|
|
33
33
|
textTransform?: import("styled-system").ResponsiveValue<import("../Text").TextTransform, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
34
34
|
lineClamp?: import("styled-system").ResponsiveValue<number, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
35
35
|
} & BaseTabProps, any, React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & import("..").BoxProps & import("styled-system").TypographyProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & Omit<import("styled-system").ColorProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol>, "color"> & {
|
|
36
|
-
variant?: import("styled-system").ResponsiveValue<"
|
|
37
|
-
textColor?: import("styled-system").ResponsiveValue<"black100" | "black60" | "black30" | "black15" | "black10" | "black5" | "white100" | "blue150" | "blue100" | "brand" | "blue10" | "green150" | "green100" | "green10" | "yellow150" | "yellow100" | "yellow10" | "orange150" | "orange100" | "orange10" | "red150" | "red100" | "red10", Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
36
|
+
variant?: import("styled-system").ResponsiveValue<"xxxl" | "xxl" | "xl" | "lg" | "lg-display" | "md" | "sm" | "sm-display" | "xs" | "xxs" | "bq", Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
37
|
+
textColor?: import("styled-system").ResponsiveValue<"textShadow" | "black100" | "black60" | "black30" | "black15" | "black10" | "black5" | "white100" | "blue200" | "blue150" | "blue100" | "brand" | "blue15" | "blue10" | "green150" | "green100" | "green10" | "yellow150" | "yellow100" | "yellow10" | "orange150" | "orange100" | "orange10" | "red150" | "red100" | "red10" | "dropShadow" | "innerShadow" | "flatShadow", Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
38
38
|
lineClamp?: number | undefined;
|
|
39
39
|
} & {
|
|
40
40
|
hyphenate?: boolean | undefined;
|
|
@@ -360,11 +360,11 @@ export declare const BorderedRadio: import("styled-components").StyledComponentC
|
|
|
360
360
|
onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
|
|
361
361
|
onTransitionEnd?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
|
|
362
362
|
onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
|
|
363
|
-
value?: string | undefined;
|
|
364
363
|
error?: boolean | undefined;
|
|
365
364
|
focus?: boolean | undefined;
|
|
366
365
|
disabled?: boolean | undefined;
|
|
367
366
|
name?: string | undefined;
|
|
367
|
+
value?: string | undefined;
|
|
368
368
|
hover?: boolean | undefined;
|
|
369
369
|
selected?: boolean | undefined;
|
|
370
370
|
} & {
|
|
@@ -51,7 +51,7 @@ var Button = /*#__PURE__*/_react.default.forwardRef(function (_ref, forwardedRef
|
|
|
51
51
|
ref: (0, _composeReactRefs.default)(ref, forwardedRef),
|
|
52
52
|
onClick: handleClick,
|
|
53
53
|
size: size,
|
|
54
|
-
loading: loading,
|
|
54
|
+
$loading: loading,
|
|
55
55
|
success: success,
|
|
56
56
|
tabIndex: loading ? -1 : 0,
|
|
57
57
|
display: "inline-flex",
|
|
@@ -116,7 +116,7 @@ var Container = _styledComponents.default.button.withConfig({
|
|
|
116
116
|
variants: _tokens.BUTTON_VARIANTS.focus
|
|
117
117
|
}));
|
|
118
118
|
}
|
|
119
|
-
if (props
|
|
119
|
+
if (props.$loading) {
|
|
120
120
|
return (0, _styledComponents.css)(["cursor:auto;transition:none;pointer-events:none;", ""], (0, _styledSystem.variant)({
|
|
121
121
|
variants: _tokens.BUTTON_VARIANTS.loading
|
|
122
122
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","names":["_composeReactRefs","_interopRequireDefault","require","_react","_interopRequireWildcard","_styledComponents","_styledSystem","_CheckmarkIcon","_themes","_Box","_Spinner","_Text","_tokens","_excluded","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","Button","React","forwardRef","_ref","forwardedRef","children","loading","success","_ref$size","size","onClick","_ref$alignItems","alignItems","_ref$justifyContent","justifyContent","Icon","rest","ref","useRef","handleClick","event","useEffect","current","_ref$current","blur","createElement","Container","composeRefs","tabIndex","display","Spinner","color","Text","lineHeight","variant","getTextVariant","opacity","width","fill","mr","ml","exports","displayName","defaultProps","buttonMixin","css","styled","button","withConfig","componentId","prop","variants","BUTTON_SIZES","props","hover","BUTTON_VARIANTS","active","focus","disabled","THEME","mediaQueries","boxMixin","BUTTON_TEXT_SIZES","Array","isArray","map","s","large"],"sources":["../../../src/elements/Button/Button.tsx"],"sourcesContent":["import composeRefs from \"@seznam/compose-react-refs\"\nimport React, { useEffect, useRef } from \"react\"\nimport styled, { css } from \"styled-components\"\nimport { ResponsiveValue, variant } from \"styled-system\"\nimport CheckmarkIcon from \"@artsy/icons/CheckmarkIcon\"\nimport { TextVariant } from \"@artsy/palette-tokens/dist/typography/v3\"\nimport { THEME } from \"../../themes\"\nimport { boxMixin, BoxProps } from \"../Box\"\nimport { Spinner } from \"../Spinner\"\nimport { Text, TextProps } from \"../Text\"\nimport { BUTTON_SIZES, BUTTON_TEXT_SIZES, BUTTON_VARIANTS } from \"./tokens\"\nimport { ButtonSize, ButtonVariant } from \"./types\"\n\nexport interface ButtonProps\n extends BoxProps,\n React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * @description\n * The theme of the button. It's possible to pass an array that\n * behaves accordingly to the media breakpoints [\"sm\", \"md\", \"lg\", \"xl\"]\n * @example\n * \"primaryBlack\"\n * \"primaryWhite\"\n * [\"primaryGray\", \"secondaryBlack\"]\n * @see {@link ButtonVariant}\n */\n variant?: ResponsiveValue<ButtonVariant>\n /** Size of the button */\n size?: ResponsiveValue<ButtonSize>\n /** Displays a loader in the button */\n loading?: boolean\n /** Forces hover state */\n hover?: boolean\n /** Forces focus state */\n focus?: boolean\n /** Forces active state */\n active?: boolean\n /** Forces success state */\n success?: boolean\n /** Optional icon slot */\n Icon?: React.FunctionComponent<BoxProps & { fill?: ResponsiveValue<string> }>\n}\n\nexport const Button: React.ForwardRefExoticComponent<\n ButtonProps & { ref?: React.Ref<HTMLElement> }\n> = React.forwardRef(\n (\n {\n children,\n loading,\n success,\n size = \"large\",\n onClick,\n alignItems = \"center\",\n justifyContent = \"center\",\n Icon,\n ...rest\n },\n forwardedRef\n ) => {\n const ref = useRef<HTMLButtonElement | null>(null)\n\n const handleClick = (\n event: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\n if (!loading && onClick) {\n onClick(event)\n }\n }\n\n useEffect(() => {\n if (loading && ref.current !== null) {\n ref.current?.blur()\n }\n }, [loading])\n\n return (\n <Container\n ref={composeRefs(ref, forwardedRef) as any}\n onClick={handleClick}\n size={size}\n loading={loading}\n success={success}\n tabIndex={loading ? -1 : 0}\n display=\"inline-flex\"\n alignItems={alignItems}\n justifyContent={justifyContent}\n {...rest}\n >\n {loading && <Spinner size={size} color=\"currentColor\" />}\n\n <Text\n lineHeight={1}\n variant={getTextVariant(size)}\n opacity={loading ? 0 : 1}\n display=\"flex\"\n alignItems={alignItems}\n justifyContent={justifyContent}\n width=\"100%\"\n >\n {!success && Icon && (\n <Icon fill=\"currentColor\" mr={0.5} ml={-0.5} aria-hidden=\"true\" />\n )}\n\n {success && (\n <CheckmarkIcon\n fill=\"currentColor\"\n mr={0.5}\n ml={-0.5}\n aria-hidden=\"true\"\n />\n )}\n\n {children}\n </Text>\n </Container>\n )\n }\n)\n\nButton.displayName = \"Button\"\n\nButton.defaultProps = {\n size: \"large\",\n variant: \"primaryBlack\",\n}\n\ntype ContainerProps = Pick<\n ButtonProps,\n \"active\" | \"disabled\" | \"focus\" | \"hover\" | \"loading\" | \"size\" | \"success\"\n>\n\nexport const buttonMixin = css`\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n font-weight: normal;\n text-align: center;\n border: 1px solid;\n text-decoration: none;\n transition: color 0.25s ease, border-color 0.25s ease,\n background-color 0.25s ease, box-shadow 0.25s ease;\n`\n\nconst Container = styled.button<ContainerProps & ButtonProps>`\n ${buttonMixin};\n\n /* Handle sizing */\n ${variant({ prop: \"size\", variants: BUTTON_SIZES })}\n\n ${(props) => {\n // Handle props driven states\n if (props.hover) {\n return variant({ variants: BUTTON_VARIANTS.hover })\n }\n\n if (props.active) {\n return variant({ variants: BUTTON_VARIANTS.active })\n }\n\n if (props.success) {\n return variant({ variants: BUTTON_VARIANTS.success })\n }\n\n if (props.focus) {\n return css`\n outline: 0;\n ${variant({ variants: BUTTON_VARIANTS.focus })}\n `\n }\n\n if (props.loading) {\n return css`\n cursor: auto;\n transition: none;\n pointer-events: none;\n ${variant({ variants: BUTTON_VARIANTS.loading })}\n `\n }\n\n if (props.disabled) {\n return css`\n pointer-events: none;\n ${variant({ variants: BUTTON_VARIANTS.disabled })}\n `\n }\n\n return variant({ variants: BUTTON_VARIANTS.default })\n }}\n\n ${() => {\n // Handle pseudo classes\n return css`\n @media ${THEME.mediaQueries.hover} {\n &:hover {\n ${variant({ variants: BUTTON_VARIANTS.hover })}\n }\n }\n\n &:focus {\n outline: 0;\n ${variant({ variants: BUTTON_VARIANTS.focus })}\n }\n\n &:active {\n ${variant({ variants: BUTTON_VARIANTS.active })}\n }\n\n &:disabled {\n pointer-events: none;\n ${variant({ variants: BUTTON_VARIANTS.disabled })}\n }\n `\n }};\n\n ${boxMixin};\n`\n\nconst getTextVariant = (\n size: ResponsiveValue<ButtonSize>\n): TextProps[\"variant\"] => {\n if (typeof size === \"string\") {\n return BUTTON_TEXT_SIZES[size]\n }\n\n if (Array.isArray(size)) {\n return size.map((s) => BUTTON_TEXT_SIZES[s!] as TextVariant)\n }\n\n return BUTTON_TEXT_SIZES.large\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Button.js","names":["_composeReactRefs","_interopRequireDefault","require","_react","_interopRequireWildcard","_styledComponents","_styledSystem","_CheckmarkIcon","_themes","_Box","_Spinner","_Text","_tokens","_excluded","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","Button","React","forwardRef","_ref","forwardedRef","children","loading","success","_ref$size","size","onClick","_ref$alignItems","alignItems","_ref$justifyContent","justifyContent","Icon","rest","ref","useRef","handleClick","event","useEffect","current","_ref$current","blur","createElement","Container","composeRefs","$loading","tabIndex","display","Spinner","color","Text","lineHeight","variant","getTextVariant","opacity","width","fill","mr","ml","exports","displayName","defaultProps","buttonMixin","css","styled","button","withConfig","componentId","prop","variants","BUTTON_SIZES","props","hover","BUTTON_VARIANTS","active","focus","disabled","THEME","mediaQueries","boxMixin","BUTTON_TEXT_SIZES","Array","isArray","map","s","large"],"sources":["../../../src/elements/Button/Button.tsx"],"sourcesContent":["import composeRefs from \"@seznam/compose-react-refs\"\nimport React, { useEffect, useRef } from \"react\"\nimport styled, { css } from \"styled-components\"\nimport { ResponsiveValue, variant } from \"styled-system\"\nimport CheckmarkIcon from \"@artsy/icons/CheckmarkIcon\"\nimport { TextVariant } from \"@artsy/palette-tokens/dist/typography/v3\"\nimport { THEME } from \"../../themes\"\nimport { boxMixin, BoxProps } from \"../Box\"\nimport { Spinner } from \"../Spinner\"\nimport { Text, TextProps } from \"../Text\"\nimport { BUTTON_SIZES, BUTTON_TEXT_SIZES, BUTTON_VARIANTS } from \"./tokens\"\nimport { ButtonSize, ButtonVariant } from \"./types\"\n\nexport interface ButtonProps\n extends BoxProps,\n React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * @description\n * The theme of the button. It's possible to pass an array that\n * behaves accordingly to the media breakpoints [\"sm\", \"md\", \"lg\", \"xl\"]\n * @example\n * \"primaryBlack\"\n * \"primaryWhite\"\n * [\"primaryGray\", \"secondaryBlack\"]\n * @see {@link ButtonVariant}\n */\n variant?: ResponsiveValue<ButtonVariant>\n /** Size of the button */\n size?: ResponsiveValue<ButtonSize>\n /** Displays a loader in the button */\n loading?: boolean\n /** Forces hover state */\n hover?: boolean\n /** Forces focus state */\n focus?: boolean\n /** Forces active state */\n active?: boolean\n /** Forces success state */\n success?: boolean\n /** Optional icon slot */\n Icon?: React.FunctionComponent<BoxProps & { fill?: ResponsiveValue<string> }>\n}\n\nexport const Button: React.ForwardRefExoticComponent<\n ButtonProps & { ref?: React.Ref<HTMLElement> }\n> = React.forwardRef(\n (\n {\n children,\n loading,\n success,\n size = \"large\",\n onClick,\n alignItems = \"center\",\n justifyContent = \"center\",\n Icon,\n ...rest\n },\n forwardedRef\n ) => {\n const ref = useRef<HTMLButtonElement | null>(null)\n\n const handleClick = (\n event: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\n if (!loading && onClick) {\n onClick(event)\n }\n }\n\n useEffect(() => {\n if (loading && ref.current !== null) {\n ref.current?.blur()\n }\n }, [loading])\n\n return (\n <Container\n ref={composeRefs(ref, forwardedRef) as any}\n onClick={handleClick}\n size={size}\n $loading={loading}\n success={success}\n tabIndex={loading ? -1 : 0}\n display=\"inline-flex\"\n alignItems={alignItems}\n justifyContent={justifyContent}\n {...rest}\n >\n {loading && <Spinner size={size} color=\"currentColor\" />}\n\n <Text\n lineHeight={1}\n variant={getTextVariant(size)}\n opacity={loading ? 0 : 1}\n display=\"flex\"\n alignItems={alignItems}\n justifyContent={justifyContent}\n width=\"100%\"\n >\n {!success && Icon && (\n <Icon fill=\"currentColor\" mr={0.5} ml={-0.5} aria-hidden=\"true\" />\n )}\n\n {success && (\n <CheckmarkIcon\n fill=\"currentColor\"\n mr={0.5}\n ml={-0.5}\n aria-hidden=\"true\"\n />\n )}\n\n {children}\n </Text>\n </Container>\n )\n }\n)\n\nButton.displayName = \"Button\"\n\nButton.defaultProps = {\n size: \"large\",\n variant: \"primaryBlack\",\n}\n\ntype ContainerProps = Pick<\n ButtonProps,\n \"active\" | \"disabled\" | \"focus\" | \"hover\" | \"size\" | \"success\"\n> & {\n $loading?: boolean\n}\n\nexport const buttonMixin = css`\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n font-weight: normal;\n text-align: center;\n border: 1px solid;\n text-decoration: none;\n transition: color 0.25s ease, border-color 0.25s ease,\n background-color 0.25s ease, box-shadow 0.25s ease;\n`\n\nconst Container = styled.button<ContainerProps & ButtonProps>`\n ${buttonMixin};\n\n /* Handle sizing */\n ${variant({ prop: \"size\", variants: BUTTON_SIZES })}\n\n ${(props) => {\n // Handle props driven states\n if (props.hover) {\n return variant({ variants: BUTTON_VARIANTS.hover })\n }\n\n if (props.active) {\n return variant({ variants: BUTTON_VARIANTS.active })\n }\n\n if (props.success) {\n return variant({ variants: BUTTON_VARIANTS.success })\n }\n\n if (props.focus) {\n return css`\n outline: 0;\n ${variant({ variants: BUTTON_VARIANTS.focus })}\n `\n }\n\n if (props.$loading) {\n return css`\n cursor: auto;\n transition: none;\n pointer-events: none;\n ${variant({ variants: BUTTON_VARIANTS.loading })}\n `\n }\n\n if (props.disabled) {\n return css`\n pointer-events: none;\n ${variant({ variants: BUTTON_VARIANTS.disabled })}\n `\n }\n\n return variant({ variants: BUTTON_VARIANTS.default })\n }}\n\n ${() => {\n // Handle pseudo classes\n return css`\n @media ${THEME.mediaQueries.hover} {\n &:hover {\n ${variant({ variants: BUTTON_VARIANTS.hover })}\n }\n }\n\n &:focus {\n outline: 0;\n ${variant({ variants: BUTTON_VARIANTS.focus })}\n }\n\n &:active {\n ${variant({ variants: BUTTON_VARIANTS.active })}\n }\n\n &:disabled {\n pointer-events: none;\n ${variant({ variants: BUTTON_VARIANTS.disabled })}\n }\n `\n }};\n\n ${boxMixin};\n`\n\nconst getTextVariant = (\n size: ResponsiveValue<ButtonSize>\n): TextProps[\"variant\"] => {\n if (typeof size === \"string\") {\n return BUTTON_TEXT_SIZES[size]\n }\n\n if (Array.isArray(size)) {\n return size.map((s) => BUTTON_TEXT_SIZES[s!] as TextVariant)\n }\n\n return BUTTON_TEXT_SIZES.large\n}\n"],"mappings":"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"}
|
|
@@ -88,10 +88,8 @@ var BUTTON_STYLES = {
|
|
|
88
88
|
textDecoration: "underline"
|
|
89
89
|
},
|
|
90
90
|
active: {
|
|
91
|
-
backgroundColor: "
|
|
92
|
-
|
|
93
|
-
borderColor: "#050e3e",
|
|
94
|
-
// Unique color to this state
|
|
91
|
+
backgroundColor: "blue200",
|
|
92
|
+
borderColor: "blue200",
|
|
95
93
|
color: "white100",
|
|
96
94
|
textDecoration: "underline"
|
|
97
95
|
}
|
|
@@ -180,10 +178,8 @@ var BUTTON_STYLES = {
|
|
|
180
178
|
textDecoration: "underline"
|
|
181
179
|
},
|
|
182
180
|
active: {
|
|
183
|
-
backgroundColor: "
|
|
184
|
-
|
|
185
|
-
borderColor: "#cacdec",
|
|
186
|
-
// Unique color to this state
|
|
181
|
+
backgroundColor: "blue15",
|
|
182
|
+
borderColor: "blue15",
|
|
187
183
|
color: "blue100",
|
|
188
184
|
textDecoration: "underline"
|
|
189
185
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","names":["_types","require","_typeof","obj","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","call","TypeError","Number","DEFAULT_PRIMARY_STATES","focus","backgroundColor","borderColor","color","textDecoration","hover","active","loading","disabled","success","DEFAULT_SECONDARY_STATES","BUTTON_STYLES","primaryBlack","default","primaryWhite","primaryBlue","primaryGray","secondaryBlack","secondaryBlue","secondaryWhite","secondaryNeutral","tertiary","exports","BUTTON_VARIANTS","BUTTON_STATES","reduce","variantsMemo","state","BUTTON_VARIANT_NAMES","stateMemo","variant","BUTTON_SIZES","small","height","borderRadius","px","large","BUTTON_TEXT_SIZES"],"sources":["../../../src/elements/Button/tokens.ts"],"sourcesContent":["import { BUTTON_STATES, BUTTON_VARIANT_NAMES } from \"./types\"\nimport { TextProps } from \"../Text\"\nimport { ButtonSize, ButtonState, ButtonVariant } from \"./types\"\n\nconst DEFAULT_PRIMARY_STATES = {\n focus: {\n backgroundColor: \"blue100\",\n borderColor: \"blue100\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n hover: {\n backgroundColor: \"blue100\",\n borderColor: \"blue100\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n active: {\n backgroundColor: \"blue150\",\n borderColor: \"blue150\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n loading: {\n backgroundColor: \"blue100\",\n borderColor: \"blue100\",\n color: \"white100\",\n },\n disabled: {\n backgroundColor: \"black30\",\n borderColor: \"black30\",\n color: \"white100\",\n },\n success: {\n backgroundColor: \"blue100\",\n borderColor: \"blue100\",\n color: \"white100\",\n },\n}\n\nconst DEFAULT_SECONDARY_STATES = {\n ...DEFAULT_PRIMARY_STATES,\n disabled: {\n backgroundColor: \"transparent\",\n borderColor: \"black30\",\n color: \"black30\",\n },\n}\n\nexport const BUTTON_STYLES: Record<ButtonVariant, Record<ButtonState, any>> = {\n primaryBlack: {\n default: {\n backgroundColor: \"black100\",\n borderColor: \"black100\",\n color: \"white100\",\n },\n ...DEFAULT_PRIMARY_STATES,\n },\n\n primaryWhite: {\n default: {\n backgroundColor: \"white100\",\n borderColor: \"white100\",\n color: \"black100\",\n },\n ...DEFAULT_PRIMARY_STATES,\n },\n\n primaryBlue: {\n default: {\n backgroundColor: \"blue100\",\n borderColor: \"blue100\",\n color: \"white100\",\n },\n ...DEFAULT_PRIMARY_STATES,\n focus: {\n backgroundColor: \"blue150\",\n borderColor: \"blue150\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n hover: {\n backgroundColor: \"blue150\",\n borderColor: \"blue150\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n active: {\n backgroundColor: \"#050e3e\", // Unique color to this state\n borderColor: \"#050e3e\", // Unique color to this state\n color: \"white100\",\n textDecoration: \"underline\",\n },\n },\n\n primaryGray: {\n default: {\n backgroundColor: \"black10\",\n borderColor: \"black10\",\n color: \"black100\",\n },\n ...DEFAULT_PRIMARY_STATES,\n },\n\n secondaryBlack: {\n default: {\n backgroundColor: \"transparent\",\n borderColor: \"black100\",\n color: \"black100\",\n },\n ...DEFAULT_SECONDARY_STATES,\n },\n\n secondaryBlue: {\n default: {\n backgroundColor: \"transparent\",\n borderColor: \"blue100\",\n color: \"blue100\",\n },\n ...DEFAULT_SECONDARY_STATES,\n },\n\n secondaryWhite: {\n default: {\n backgroundColor: \"transparent\",\n borderColor: \"white100\",\n color: \"white100\",\n },\n ...DEFAULT_SECONDARY_STATES,\n },\n\n /** Used for follow buttons */\n secondaryNeutral: {\n default: {\n backgroundColor: \"transparent\",\n borderColor: \"black100\",\n color: \"black100\",\n },\n ...DEFAULT_SECONDARY_STATES,\n focus: {\n backgroundColor: \"black10\",\n borderColor: \"black10\",\n color: \"black100\",\n textDecoration: \"underline\",\n },\n hover: {\n backgroundColor: \"black100\",\n borderColor: \"black100\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n active: {\n backgroundColor: \"black100\",\n borderColor: \"black100\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n loading: {\n backgroundColor: \"black100\",\n borderColor: \"black100\",\n color: \"white100\",\n },\n success: {\n backgroundColor: \"transparent\",\n borderColor: \"black100\",\n color: \"black100\",\n },\n },\n\n tertiary: {\n default: {\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n color: \"black100\",\n },\n focus: {\n backgroundColor: \"blue10\",\n borderColor: \"blue10\",\n color: \"blue100\",\n textDecoration: \"underline\",\n },\n hover: {\n backgroundColor: \"blue10\",\n borderColor: \"blue10\",\n color: \"blue100\",\n textDecoration: \"underline\",\n },\n active: {\n backgroundColor: \"#cacdec\", // Unique color to this state\n borderColor: \"#cacdec\", // Unique color to this state\n color: \"blue100\",\n textDecoration: \"underline\",\n },\n loading: {\n backgroundColor: \"blue10\",\n borderColor: \"blue10\",\n color: \"blue100\",\n },\n disabled: {\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n color: \"black30\",\n },\n success: {\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n color: \"blue100\",\n },\n },\n}\n\ntype ButtonVariants = Record<ButtonState, Record<ButtonVariant, any>>\n\n/** Inverts the structure of the style object so that we can use responsive values for `variant` */\nexport const BUTTON_VARIANTS: ButtonVariants = BUTTON_STATES.reduce(\n (variantsMemo, state) => {\n return {\n ...variantsMemo,\n [state]: BUTTON_VARIANT_NAMES.reduce((stateMemo, variant) => {\n return {\n ...stateMemo,\n [variant]: BUTTON_STYLES[variant][state],\n }\n }, {}),\n }\n },\n {} as ButtonVariants\n)\n\n/** Available button sizes */\nexport const BUTTON_SIZES = {\n small: {\n height: \"30px\",\n borderRadius: \"15px\",\n px: \"25px\",\n },\n large: {\n height: \"50px\",\n borderRadius: \"25px\",\n px: \"25px\",\n },\n} as const\n\n/** Text sizes associated with available button sizes */\nexport const BUTTON_TEXT_SIZES: Record<ButtonSize, TextProps[\"variant\"]> = {\n small: \"xs\",\n large: \"sm-display\",\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tokens.js","names":["_types","require","_typeof","obj","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","call","TypeError","Number","DEFAULT_PRIMARY_STATES","focus","backgroundColor","borderColor","color","textDecoration","hover","active","loading","disabled","success","DEFAULT_SECONDARY_STATES","BUTTON_STYLES","primaryBlack","default","primaryWhite","primaryBlue","primaryGray","secondaryBlack","secondaryBlue","secondaryWhite","secondaryNeutral","tertiary","exports","BUTTON_VARIANTS","BUTTON_STATES","reduce","variantsMemo","state","BUTTON_VARIANT_NAMES","stateMemo","variant","BUTTON_SIZES","small","height","borderRadius","px","large","BUTTON_TEXT_SIZES"],"sources":["../../../src/elements/Button/tokens.ts"],"sourcesContent":["import { BUTTON_STATES, BUTTON_VARIANT_NAMES } from \"./types\"\nimport { TextProps } from \"../Text\"\nimport { ButtonSize, ButtonState, ButtonVariant } from \"./types\"\n\nconst DEFAULT_PRIMARY_STATES = {\n focus: {\n backgroundColor: \"blue100\",\n borderColor: \"blue100\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n hover: {\n backgroundColor: \"blue100\",\n borderColor: \"blue100\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n active: {\n backgroundColor: \"blue150\",\n borderColor: \"blue150\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n loading: {\n backgroundColor: \"blue100\",\n borderColor: \"blue100\",\n color: \"white100\",\n },\n disabled: {\n backgroundColor: \"black30\",\n borderColor: \"black30\",\n color: \"white100\",\n },\n success: {\n backgroundColor: \"blue100\",\n borderColor: \"blue100\",\n color: \"white100\",\n },\n}\n\nconst DEFAULT_SECONDARY_STATES = {\n ...DEFAULT_PRIMARY_STATES,\n disabled: {\n backgroundColor: \"transparent\",\n borderColor: \"black30\",\n color: \"black30\",\n },\n}\n\nexport const BUTTON_STYLES: Record<ButtonVariant, Record<ButtonState, any>> = {\n primaryBlack: {\n default: {\n backgroundColor: \"black100\",\n borderColor: \"black100\",\n color: \"white100\",\n },\n ...DEFAULT_PRIMARY_STATES,\n },\n\n primaryWhite: {\n default: {\n backgroundColor: \"white100\",\n borderColor: \"white100\",\n color: \"black100\",\n },\n ...DEFAULT_PRIMARY_STATES,\n },\n\n primaryBlue: {\n default: {\n backgroundColor: \"blue100\",\n borderColor: \"blue100\",\n color: \"white100\",\n },\n ...DEFAULT_PRIMARY_STATES,\n focus: {\n backgroundColor: \"blue150\",\n borderColor: \"blue150\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n hover: {\n backgroundColor: \"blue150\",\n borderColor: \"blue150\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n active: {\n backgroundColor: \"blue200\",\n borderColor: \"blue200\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n },\n\n primaryGray: {\n default: {\n backgroundColor: \"black10\",\n borderColor: \"black10\",\n color: \"black100\",\n },\n ...DEFAULT_PRIMARY_STATES,\n },\n\n secondaryBlack: {\n default: {\n backgroundColor: \"transparent\",\n borderColor: \"black100\",\n color: \"black100\",\n },\n ...DEFAULT_SECONDARY_STATES,\n },\n\n secondaryBlue: {\n default: {\n backgroundColor: \"transparent\",\n borderColor: \"blue100\",\n color: \"blue100\",\n },\n ...DEFAULT_SECONDARY_STATES,\n },\n\n secondaryWhite: {\n default: {\n backgroundColor: \"transparent\",\n borderColor: \"white100\",\n color: \"white100\",\n },\n ...DEFAULT_SECONDARY_STATES,\n },\n\n /** Used for follow buttons */\n secondaryNeutral: {\n default: {\n backgroundColor: \"transparent\",\n borderColor: \"black100\",\n color: \"black100\",\n },\n ...DEFAULT_SECONDARY_STATES,\n focus: {\n backgroundColor: \"black10\",\n borderColor: \"black10\",\n color: \"black100\",\n textDecoration: \"underline\",\n },\n hover: {\n backgroundColor: \"black100\",\n borderColor: \"black100\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n active: {\n backgroundColor: \"black100\",\n borderColor: \"black100\",\n color: \"white100\",\n textDecoration: \"underline\",\n },\n loading: {\n backgroundColor: \"black100\",\n borderColor: \"black100\",\n color: \"white100\",\n },\n success: {\n backgroundColor: \"transparent\",\n borderColor: \"black100\",\n color: \"black100\",\n },\n },\n\n tertiary: {\n default: {\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n color: \"black100\",\n },\n focus: {\n backgroundColor: \"blue10\",\n borderColor: \"blue10\",\n color: \"blue100\",\n textDecoration: \"underline\",\n },\n hover: {\n backgroundColor: \"blue10\",\n borderColor: \"blue10\",\n color: \"blue100\",\n textDecoration: \"underline\",\n },\n active: {\n backgroundColor: \"blue15\",\n borderColor: \"blue15\",\n color: \"blue100\",\n textDecoration: \"underline\",\n },\n loading: {\n backgroundColor: \"blue10\",\n borderColor: \"blue10\",\n color: \"blue100\",\n },\n disabled: {\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n color: \"black30\",\n },\n success: {\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n color: \"blue100\",\n },\n },\n}\n\ntype ButtonVariants = Record<ButtonState, Record<ButtonVariant, any>>\n\n/** Inverts the structure of the style object so that we can use responsive values for `variant` */\nexport const BUTTON_VARIANTS: ButtonVariants = BUTTON_STATES.reduce(\n (variantsMemo, state) => {\n return {\n ...variantsMemo,\n [state]: BUTTON_VARIANT_NAMES.reduce((stateMemo, variant) => {\n return {\n ...stateMemo,\n [variant]: BUTTON_STYLES[variant][state],\n }\n }, {}),\n }\n },\n {} as ButtonVariants\n)\n\n/** Available button sizes */\nexport const BUTTON_SIZES = {\n small: {\n height: \"30px\",\n borderRadius: \"15px\",\n px: \"25px\",\n },\n large: {\n height: \"50px\",\n borderRadius: \"25px\",\n px: \"25px\",\n },\n} as const\n\n/** Text sizes associated with available button sizes */\nexport const BUTTON_TEXT_SIZES: Record<ButtonSize, TextProps[\"variant\"]> = {\n small: \"xs\",\n large: \"sm-display\",\n}\n"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ var _Image = require("../Image");
|
|
|
9
9
|
var _Box = require("../Box");
|
|
10
10
|
var _Text = require("../Text");
|
|
11
11
|
var _ResponsiveBox = require("../ResponsiveBox");
|
|
12
|
-
var
|
|
12
|
+
var _Theme = require("../../Theme");
|
|
13
13
|
var _excluded = ["image", "title", "subtitle", "status"];
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
@@ -25,6 +25,9 @@ var Card = function Card(_ref) {
|
|
|
25
25
|
subtitle = _ref.subtitle,
|
|
26
26
|
status = _ref.status,
|
|
27
27
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
28
|
+
var _useTheme = (0, _Theme.useTheme)(),
|
|
29
|
+
theme = _useTheme.theme;
|
|
30
|
+
var background = theme.id === "v3" ? "linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.6))" : "linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.6))";
|
|
28
31
|
return /*#__PURE__*/_react.default.createElement(_Box.Box, _extends({
|
|
29
32
|
maxWidth: 280
|
|
30
33
|
}, rest), /*#__PURE__*/_react.default.createElement(_ResponsiveBox.ResponsiveBox, {
|
|
@@ -46,7 +49,7 @@ var Card = function Card(_ref) {
|
|
|
46
49
|
height: "100%",
|
|
47
50
|
top: 0,
|
|
48
51
|
left: 0,
|
|
49
|
-
background:
|
|
52
|
+
background: background
|
|
50
53
|
}), /*#__PURE__*/_react.default.createElement(_Box.Box, {
|
|
51
54
|
position: "absolute",
|
|
52
55
|
bottom: 0,
|
|
@@ -54,7 +57,7 @@ var Card = function Card(_ref) {
|
|
|
54
57
|
width: "100%",
|
|
55
58
|
p: 2,
|
|
56
59
|
style: {
|
|
57
|
-
textShadow:
|
|
60
|
+
textShadow: theme.colors.textShadow
|
|
58
61
|
}
|
|
59
62
|
}, status && /*#__PURE__*/_react.default.createElement(_Text.Text, {
|
|
60
63
|
variant: "xs",
|