@adamjanicki/ui 1.6.1 → 1.6.3
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/components/Avatar/Avatar.d.ts +26 -0
- package/components/Avatar/Avatar.js +56 -0
- package/components/Avatar/index.d.ts +2 -0
- package/components/Avatar/index.js +2 -0
- package/components/Button/Button.d.ts +23 -1
- package/components/Button/Button.js +7 -2
- package/components/Button/index.d.ts +2 -2
- package/components/Button/index.js +2 -2
- package/components/Icon/Icon.d.ts +3 -2
- package/components/Icon/icons.d.ts +1 -1
- package/components/Icon/icons.js +2 -0
- package/components/Layer/Layer.d.ts +0 -5
- package/components/Layer/Layer.js +13 -21
- package/components/Link/Link.d.ts +3 -3
- package/components/Link/Link.js +4 -4
- package/components/Modal/Modal.d.ts +33 -0
- package/components/Modal/Modal.js +47 -0
- package/components/Modal/index.d.ts +2 -0
- package/components/Modal/index.js +2 -0
- package/components/Select/Select.d.ts +2 -2
- package/components/Select/Select.js +5 -5
- package/hooks/useFocusTrap.js +22 -31
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/package.json +1 -1
- package/style.css +1 -1
- package/utils/types.d.ts +14 -10
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { CornerType, SizeToken } from "../../utils/types";
|
|
3
|
+
import { type BoxProps } from "../Box/Box";
|
|
4
|
+
type Props = Omit<BoxProps, "children"> & {
|
|
5
|
+
/**
|
|
6
|
+
* How to treat the border radius of the avatar
|
|
7
|
+
* @default "rounded"
|
|
8
|
+
*/
|
|
9
|
+
corners?: CornerType;
|
|
10
|
+
/**
|
|
11
|
+
* Size of the avatar
|
|
12
|
+
* @default "s"
|
|
13
|
+
*/
|
|
14
|
+
size?: SizeToken | number;
|
|
15
|
+
/**
|
|
16
|
+
* Image to be used in the background
|
|
17
|
+
*/
|
|
18
|
+
backgroundImage?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Username to render the first char of,
|
|
21
|
+
* or as a fallback if there's a 404 getting the backgroundImage url
|
|
22
|
+
*/
|
|
23
|
+
username: string;
|
|
24
|
+
};
|
|
25
|
+
declare const Avatar: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
26
|
+
export default Avatar;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
+
import React, { useState } from "react";
|
|
25
|
+
import Box from "../Box/Box";
|
|
26
|
+
import { classNames } from "../../functions";
|
|
27
|
+
var Avatar = React.forwardRef(function (_a, ref) {
|
|
28
|
+
var _b = _a.size, size = _b === void 0 ? "s" : _b, backgroundImage = _a.backgroundImage, className = _a.className, style = _a.style, _c = _a.corners, corners = _c === void 0 ? "rounded" : _c, username = _a.username, rest = __rest(_a, ["size", "backgroundImage", "className", "style", "corners", "username"]);
|
|
29
|
+
var _d = useState(false), imageError = _d[0], setImageError = _d[1];
|
|
30
|
+
var useFallback = imageError || !backgroundImage;
|
|
31
|
+
var color = chooseColor(username);
|
|
32
|
+
var avatarClassName = "aui-avatar aui-corners--".concat(corners);
|
|
33
|
+
if (useFallback) {
|
|
34
|
+
avatarClassName = classNames(avatarClassName, "aui-avatar-".concat(color));
|
|
35
|
+
}
|
|
36
|
+
var imageClassName = undefined;
|
|
37
|
+
var avatarStyle = {};
|
|
38
|
+
var imageStyle = undefined;
|
|
39
|
+
if (typeof size === "number") {
|
|
40
|
+
avatarStyle = { width: size, height: size, fontSize: 0.8 * size };
|
|
41
|
+
imageStyle = { width: size, height: size };
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
avatarClassName = classNames(avatarClassName, "aui-avatar-".concat(size));
|
|
45
|
+
imageClassName = "aui-avatar-".concat(size);
|
|
46
|
+
}
|
|
47
|
+
var fallbackCharacter = username[0];
|
|
48
|
+
return (_jsx(Box, __assign({ className: classNames(avatarClassName, className), style: __assign(__assign({}, avatarStyle), style) }, rest, { ref: ref, children: !useFallback ? (_jsx("img", { src: backgroundImage, alt: "", className: imageClassName, onError: function () { return setImageError(true); }, style: imageStyle })) : (fallbackCharacter) })));
|
|
49
|
+
});
|
|
50
|
+
var colorOptions = ["red", "yellow", "green", "blue", "purple"];
|
|
51
|
+
// simple deterministic "hash" to get a background color
|
|
52
|
+
function chooseColor(username) {
|
|
53
|
+
return colorOptions[username.split("").reduce(function (sum, char) { return sum + char.charCodeAt(0); }, 0) %
|
|
54
|
+
colorOptions.length];
|
|
55
|
+
}
|
|
56
|
+
export default Avatar;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { CornerType, Layout } from "../../utils/types";
|
|
3
|
-
|
|
3
|
+
import { Props as IconProps } from "../Icon/Icon";
|
|
4
|
+
type BaseButtonProps = React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
|
|
5
|
+
type DefaultButtonProps = BaseButtonProps & {
|
|
4
6
|
/**
|
|
5
7
|
* Additional styles to apply to the layout that are transformed to classNames to be easier to override if needed
|
|
6
8
|
*/
|
|
@@ -25,6 +27,26 @@ export type VisualButtonProps = {
|
|
|
25
27
|
};
|
|
26
28
|
type ButtonProps = DefaultButtonProps & VisualButtonProps;
|
|
27
29
|
export declare const UnstyledButton: React.ForwardRefExoticComponent<Omit<DefaultButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
30
|
+
type IconButtonProps = Omit<BaseButtonProps, "children"> & {
|
|
31
|
+
/**
|
|
32
|
+
* The hover effect to play when the user hovers over the button
|
|
33
|
+
* @default "dim"
|
|
34
|
+
*/
|
|
35
|
+
variant?: "dim" | "undim";
|
|
36
|
+
/**
|
|
37
|
+
* Which icon to render in the button
|
|
38
|
+
*/
|
|
39
|
+
icon: IconProps["icon"];
|
|
40
|
+
/**
|
|
41
|
+
* The size of the icon
|
|
42
|
+
*/
|
|
43
|
+
size?: IconProps["size"];
|
|
44
|
+
/**
|
|
45
|
+
* Other props to pass to the icon element
|
|
46
|
+
*/
|
|
47
|
+
iconProps?: Omit<IconProps, "icon" | "size">;
|
|
48
|
+
};
|
|
49
|
+
export declare const IconButton: React.ForwardRefExoticComponent<Omit<IconButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
28
50
|
declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
29
51
|
export declare const getButtonClassName: ({ variant, corners, size, }: VisualButtonProps) => string;
|
|
30
52
|
export default Button;
|
|
@@ -24,13 +24,18 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
24
24
|
import React from "react";
|
|
25
25
|
import classNames from "../../functions/classNames";
|
|
26
26
|
import transformLayout from "../../utils/transformLayout";
|
|
27
|
+
import Icon from "../Icon/Icon";
|
|
27
28
|
export var UnstyledButton = React.forwardRef(function (_a, ref) {
|
|
28
29
|
var className = _a.className, layout = _a.layout, props = __rest(_a, ["className", "layout"]);
|
|
29
30
|
return (_jsx("button", __assign({}, props, { className: classNames("aui-action aui-button", transformLayout(layout), className), ref: ref })));
|
|
30
31
|
});
|
|
32
|
+
export var IconButton = React.forwardRef(function (_a, ref) {
|
|
33
|
+
var icon = _a.icon, size = _a.size, iconProps = _a.iconProps, _b = _a.variant, variant = _b === void 0 ? "dim" : _b, className = _a.className, rest = __rest(_a, ["icon", "size", "iconProps", "variant", "className"]);
|
|
34
|
+
return (_jsx(UnstyledButton, __assign({}, rest, { layout: { axis: "x", align: "center", justify: "center" }, className: classNames("aui-".concat(variant), className), ref: ref, children: _jsx(Icon, __assign({ icon: icon, size: size }, iconProps)) })));
|
|
35
|
+
});
|
|
31
36
|
var Button = React.forwardRef(function (_a, ref) {
|
|
32
|
-
var variant = _a.variant, corners = _a.corners, className = _a.className, size = _a.size, rest = __rest(_a, ["variant", "corners", "className", "size"]);
|
|
33
|
-
return (_jsx(UnstyledButton, __assign({}, rest, { className: classNames(getButtonClassName({ variant: variant, corners: corners, size: size }), className), ref: ref })));
|
|
37
|
+
var variant = _a.variant, layout = _a.layout, corners = _a.corners, className = _a.className, size = _a.size, rest = __rest(_a, ["variant", "layout", "corners", "className", "size"]);
|
|
38
|
+
return (_jsx(UnstyledButton, __assign({}, rest, { className: classNames(getButtonClassName({ variant: variant, corners: corners, size: size }), transformLayout(layout), className), ref: ref })));
|
|
34
39
|
});
|
|
35
40
|
export var getButtonClassName = function (_a) {
|
|
36
41
|
var _b = _a.variant, variant = _b === void 0 ? "primary" : _b, _c = _a.corners, corners = _c === void 0 ? "rounded" : _c, _d = _a.size, size = _d === void 0 ? "regular" : _d;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import Button, { UnstyledButton } from "./Button";
|
|
2
|
-
export { UnstyledButton };
|
|
1
|
+
import Button, { UnstyledButton, IconButton } from "./Button";
|
|
2
|
+
export { UnstyledButton, IconButton };
|
|
3
3
|
export default Button;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import Button, { UnstyledButton } from "./Button";
|
|
2
|
-
export { UnstyledButton };
|
|
1
|
+
import Button, { UnstyledButton, IconButton } from "./Button";
|
|
2
|
+
export { UnstyledButton, IconButton };
|
|
3
3
|
export default Button;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type IconType } from "./icons";
|
|
3
|
-
type
|
|
3
|
+
import type { SizeToken } from "../../utils/types";
|
|
4
|
+
export type Props = Omit<React.DetailedHTMLProps<React.SVGAttributes<SVGSVGElement>, SVGSVGElement>, "children" | "viewBox"> & {
|
|
4
5
|
/**
|
|
5
6
|
* The version of icon to render
|
|
6
7
|
*/
|
|
@@ -9,7 +10,7 @@ type Props = Omit<React.DetailedHTMLProps<React.SVGAttributes<SVGSVGElement>, SV
|
|
|
9
10
|
* Size of the icon; will control both width and height
|
|
10
11
|
* @default "s"
|
|
11
12
|
*/
|
|
12
|
-
size?:
|
|
13
|
+
size?: SizeToken;
|
|
13
14
|
};
|
|
14
15
|
declare const Icon: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
15
16
|
export default Icon;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const iconTypes: readonly ["architect", "arrow-down", "arrow-left", "arrow-right", "arrow-up", "atom", "award", "bar-graph", "building", "calculator", "calendar", "car", "check", "check-circle", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "city", "clipboard", "clock", "clone", "cloud", "code", "comment", "cube", "database", "desktop", "document", "download", "edit", "evergreen", "export", "external", "file", "film", "flower", "folder", "gem", "globe", "graph-down", "graph-up", "grid", "heart", "home", "info-circle", "info-square", "letter", "license", "link", "list", "lock", "login", "logout", "menu", "minus", "minus-circle", "moon", "more", "mountains", "newspaper", "not-a-moon", "overflow", "person", "plus", "plus-circle", "podium", "search", "settings", "shell", "shuffle", "snowflake", "sparkles", "star", "sun", "tag", "ticket", "trash", "tree", "tv", "unlock", "upload", "vista", "warning-circle", "x", "x-circle"];
|
|
1
|
+
export declare const iconTypes: readonly ["architect", "arrow-down", "arrow-left", "arrow-right", "arrow-up", "atom", "award", "bar-graph", "bell", "building", "calculator", "calendar", "car", "check", "check-circle", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "city", "clipboard", "clock", "clone", "cloud", "code", "comment", "cube", "database", "desktop", "document", "download", "edit", "evergreen", "export", "external", "file", "film", "flower", "folder", "gem", "globe", "graph-down", "graph-up", "grid", "heart", "home", "info-circle", "info-square", "letter", "license", "link", "list", "lock", "login", "logout", "menu", "minus", "minus-circle", "moon", "more", "mountains", "newspaper", "not-a-moon", "overflow", "person", "plus", "plus-circle", "podium", "search", "settings", "shell", "shuffle", "snowflake", "sparkles", "star", "sun", "tag", "ticket", "trash", "tree", "tv", "unlock", "upload", "vista", "warning-circle", "x", "x-circle"];
|
|
2
2
|
export type IconType = (typeof iconTypes)[number];
|
|
3
3
|
declare const icons: Record<IconType, string>;
|
|
4
4
|
export default icons;
|
package/components/Icon/icons.js
CHANGED
|
@@ -7,6 +7,7 @@ export var iconTypes = [
|
|
|
7
7
|
"atom",
|
|
8
8
|
"award",
|
|
9
9
|
"bar-graph",
|
|
10
|
+
"bell",
|
|
10
11
|
"building",
|
|
11
12
|
"calculator",
|
|
12
13
|
"calendar",
|
|
@@ -173,5 +174,6 @@ var icons = {
|
|
|
173
174
|
award: "M14.3374,6.1735h.0001c-.0375-.4687-.512-.8192-.6546-1.2562l-.0419-.1562c-.0953-.4498.1407-.9905-.0612-1.4155-.2278-.6859-.9683-.6907-1.4266-1.1453-.389-.3591-.4005-.9323-.8239-1.2454-.5374-.4791-1.1875-.1111-1.8097-.275-.594-.1584-.9305-.7239-1.5197-.6772-.5906-.0469-.9323.519-1.5233.6772-.522.155-1.0462-.1177-1.4901.095-.507.1795-.6814.6392-.9037,1.1151-.3085.6185-1.1274.673-1.4871,1.1352-.3477.4052-.2687.8929-.222,1.4184.0414.7628-.7646,1.2202-.7302,1.9108-.047.5906.519.9322.6772,1.5234.1625.622-.2001,1.2735.2803,1.8109.2726.3875.837.4611,1.2141.8203v4.9668c0,.466.5634.6993.893.3698l2.9217-2.9218c.2043-.2043.5355-.2043.7399,0l2.9218,2.9218c.3295.3295.893.0962.893-.3699v-4.9854c.0103-.0192.0187-.0348.029-.0541.5892-.3795,1.4185-.5754,1.4506-1.4131.0268-.3505-.1125-.7572.0103-1.1447.1692-.6226.8096-.9972.6628-1.7051ZM8.0001,8.7724c-1.3807,0-2.5-1.1172-2.5-2.4954s1.1193-2.4953,2.5-2.4953,2.5,1.1172,2.5,2.4953-1.1193,2.4954-2.5,2.4954Z",
|
|
174
175
|
flower: "M12.2426,9.364c1.1716-1.1716,1.1716-3.071,0-4.2426,1.1716-1.1716,1.1716-3.0711,0-4.2427-1.1716-1.1716-3.071-1.1716-4.2426,0C6.8284-.2929,4.929-.2929,3.7574.8787c-1.1716,1.1716-1.1716,3.071,0,4.2427-1.1716,1.1716-1.1716,3.071,0,4.2426.8765.8765,2.1601,1.0964,3.2418.6615v2.668c-1.421-.8044-2.8931-.8878-3.3029-.1779-.4142.7175.4132,1.9706,1.8481,2.7991.8587.4958,1.7356.721,2.394.673.0212.0013.0392.0123.0609.0123s.0396-.0109.0609-.0123c.6584.048,1.5353-.1772,2.394-.673,1.4349-.8284,2.2623-2.0816,1.848-2.7991-.4099-.7099-1.8818-.6265-3.3029.1779v-2.6686c1.082.4358,2.3665.2159,3.2434-.661ZM6.2322,3.3535c.9763-.9763,2.5592-.9763,3.5355,0s.9763,2.5592,0,3.5356c-.9763.9763-2.5593.9763-3.5355,0-.9763-.9764-.9763-2.5592,0-3.5356Z",
|
|
175
176
|
overflow: "M8,6.25c.9665,0,1.75.7835,1.75,1.75s-.7835,1.75-1.75,1.75-1.75-.7835-1.75-1.75.7835-1.75,1.75-1.75ZM6.25,1.75c0,.9665.7835,1.75,1.75,1.75s1.75-.7835,1.75-1.75-.7835-1.75-1.75-1.75-1.75.7835-1.75,1.75ZM6.25,14.25c0,.9665.7835,1.75,1.75,1.75s1.75-.7835,1.75-1.75-.7835-1.75-1.75-1.75-1.75.7835-1.75,1.75Z",
|
|
177
|
+
bell: "M14.1079,12.2049c-.512-.3928-.8403-.9752-.9876-1.6036-.2782-1.1865-.6092-3.0107-.62-5.006-.0114-2.1172-1.4575-4.0092-3.5003-4.4756v-.1196c0-.5523-.4477-1-1-1s-1,.4477-1,1v.1196c-2.0428.4664-3.4889,2.3584-3.5003,4.4756-.0108,1.9953-.3418,3.8195-.62,5.006-.1473.6284-.4756,1.2109-.9876,1.6036-.2736.2098-.4356.5579-.3818.9399.0714.5071.5548.8552,1.0666.8552h3.4232c0,1.0972.9028,2,2,2s2-.9028,2-2h3.4232c.5118,0,.9952-.3481,1.0666-.8552.0538-.382-.1083-.73-.3818-.9399ZM8,14h-.0292c.0162,0,.0292-.0131.0292-.0292,0,.0161.0131.0292.0292.0292h-.0292Z",
|
|
176
178
|
};
|
|
177
179
|
export default icons;
|
|
@@ -10,11 +10,6 @@ type Props = Omit<BoxProps, "children"> & {
|
|
|
10
10
|
* IMPORTANT: the child must be able to accept a ref
|
|
11
11
|
*/
|
|
12
12
|
children: React.ReactElement<any>;
|
|
13
|
-
/**
|
|
14
|
-
* [Optional] Whether to disable the escape key to close the layer
|
|
15
|
-
* @default false
|
|
16
|
-
*/
|
|
17
|
-
disableEscape?: boolean;
|
|
18
13
|
/**
|
|
19
14
|
* [Optional] Whether to return focus to the element that triggered the layer
|
|
20
15
|
* @default false
|
|
@@ -25,22 +25,27 @@ import React, { useEffect } from "react";
|
|
|
25
25
|
import { useFocusTrap, useScrollLock } from "../../hooks";
|
|
26
26
|
import classNames from "../../functions/classNames";
|
|
27
27
|
import Box from "../Box/Box";
|
|
28
|
-
var
|
|
29
|
-
var
|
|
30
|
-
var focusRef = useFocusTrap(
|
|
28
|
+
var Layer = React.forwardRef(function (_a, ref) {
|
|
29
|
+
var returnFocusOnEscape = _a.returnFocusOnEscape, disableScrollLock = _a.disableScrollLock, onClose = _a.onClose, children = _a.children, className = _a.className, onMouseDown = _a.onMouseDown, layout = _a.layout, rest = __rest(_a, ["returnFocusOnEscape", "disableScrollLock", "onClose", "children", "className", "onMouseDown", "layout"]);
|
|
30
|
+
var focusRef = useFocusTrap(true);
|
|
31
|
+
// Lock and unlock on mount and unmount
|
|
32
|
+
useScrollLock(!disableScrollLock);
|
|
31
33
|
useEffect(function () {
|
|
32
34
|
var handleEscape = function (event) {
|
|
35
|
+
var _a;
|
|
33
36
|
if (event.key === "Escape") {
|
|
37
|
+
if (!returnFocusOnEscape) {
|
|
38
|
+
var activeEl = document.activeElement;
|
|
39
|
+
(_a = activeEl === null || activeEl === void 0 ? void 0 : activeEl.blur) === null || _a === void 0 ? void 0 : _a.call(activeEl);
|
|
40
|
+
}
|
|
34
41
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
35
42
|
}
|
|
36
43
|
};
|
|
37
|
-
|
|
38
|
-
document.addEventListener("keydown", handleEscape);
|
|
44
|
+
document.addEventListener("keydown", handleEscape);
|
|
39
45
|
return function () {
|
|
40
|
-
|
|
41
|
-
document.removeEventListener("keydown", handleEscape);
|
|
46
|
+
document.removeEventListener("keydown", handleEscape);
|
|
42
47
|
};
|
|
43
|
-
}, [onClose,
|
|
48
|
+
}, [onClose, returnFocusOnEscape]);
|
|
44
49
|
return (_jsx(Box, __assign({ layout: __assign({ axis: "y", align: "center", justify: "center" }, layout) }, rest, { className: classNames("aui-layer-backdrop", className), onMouseDown: function (e) {
|
|
45
50
|
onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(e);
|
|
46
51
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
@@ -53,17 +58,4 @@ var BaseLayer = React.forwardRef(function (_a, ref) {
|
|
|
53
58
|
},
|
|
54
59
|
}) })));
|
|
55
60
|
});
|
|
56
|
-
var Layer = React.forwardRef(function (_a, ref) {
|
|
57
|
-
var returnFocusOnEscape = _a.returnFocusOnEscape, disableScrollLock = _a.disableScrollLock, rest = __rest(_a, ["returnFocusOnEscape", "disableScrollLock"]);
|
|
58
|
-
// Lock and unlock on mount and unmount
|
|
59
|
-
useScrollLock(!disableScrollLock);
|
|
60
|
-
useEffect(function () { return function () {
|
|
61
|
-
var _a;
|
|
62
|
-
var activeEl = document.activeElement;
|
|
63
|
-
if (!returnFocusOnEscape) {
|
|
64
|
-
(_a = activeEl === null || activeEl === void 0 ? void 0 : activeEl.blur) === null || _a === void 0 ? void 0 : _a.call(activeEl);
|
|
65
|
-
}
|
|
66
|
-
}; }, [returnFocusOnEscape]);
|
|
67
|
-
return _jsx(BaseLayer, __assign({}, rest, { visible: true, ref: ref }));
|
|
68
|
-
});
|
|
69
61
|
export default Layer;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type VisualButtonProps } from "../Button/Button";
|
|
3
3
|
import { Layout } from "../../utils/types";
|
|
4
|
-
type BaseLinkProps = Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "href"> & {
|
|
4
|
+
export type BaseLinkProps = Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "href"> & {
|
|
5
5
|
/**
|
|
6
6
|
* URL to navigate to
|
|
7
7
|
*/
|
|
8
|
-
to
|
|
8
|
+
to: string;
|
|
9
9
|
};
|
|
10
10
|
type CustomLinkElement = React.ForwardRefExoticComponent<BaseLinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
11
11
|
type LinkProps = BaseLinkProps & {
|
|
@@ -29,7 +29,7 @@ export declare const ButtonLink: React.ForwardRefExoticComponent<Omit<Omit<React
|
|
|
29
29
|
/**
|
|
30
30
|
* URL to navigate to
|
|
31
31
|
*/
|
|
32
|
-
to
|
|
32
|
+
to: string;
|
|
33
33
|
} & {
|
|
34
34
|
/**
|
|
35
35
|
* Whether the link should open in a new tab
|
package/components/Link/Link.js
CHANGED
|
@@ -34,11 +34,11 @@ export var UnstyledLink = React.forwardRef(function (_a, ref) {
|
|
|
34
34
|
return _jsx("a", __assign({}, props, { href: to, ref: ref }));
|
|
35
35
|
});
|
|
36
36
|
export var ButtonLink = React.forwardRef(function (_a, ref) {
|
|
37
|
-
var className = _a.className, variant = _a.variant, corners = _a.corners, size = _a.size, props = __rest(_a, ["className", "variant", "corners", "size"]);
|
|
38
|
-
return (_jsx(UnstyledLink, __assign({}, props, { className: classNames(getButtonClassName({ variant: variant, corners: corners, size: size }), className), ref: ref })));
|
|
37
|
+
var className = _a.className, layout = _a.layout, variant = _a.variant, corners = _a.corners, size = _a.size, props = __rest(_a, ["className", "layout", "variant", "corners", "size"]);
|
|
38
|
+
return (_jsx(UnstyledLink, __assign({}, props, { className: classNames(getButtonClassName({ variant: variant, corners: corners, size: size }), transformLayout(layout), className), ref: ref })));
|
|
39
39
|
});
|
|
40
40
|
var Link = React.forwardRef(function (_a, ref) {
|
|
41
|
-
var className = _a.className, props = __rest(_a, ["className"]);
|
|
42
|
-
return (_jsx(UnstyledLink, __assign({}, props, { className: classNames("aui-link", className), ref: ref })));
|
|
41
|
+
var className = _a.className, layout = _a.layout, props = __rest(_a, ["className", "layout"]);
|
|
42
|
+
return (_jsx(UnstyledLink, __assign({}, props, { className: classNames("aui-link", transformLayout(layout), className), ref: ref })));
|
|
43
43
|
});
|
|
44
44
|
export default Link;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type BoxProps } from "../Box/Box";
|
|
3
|
+
type Props = BoxProps & {
|
|
4
|
+
/**
|
|
5
|
+
* Callback that fires when the user clicks the Ok button in the modal
|
|
6
|
+
*/
|
|
7
|
+
onConfirm: () => void;
|
|
8
|
+
/**
|
|
9
|
+
* Label rendered in the ok/confirm button
|
|
10
|
+
* @default "Ok"
|
|
11
|
+
*/
|
|
12
|
+
confirmLabel?: React.ReactNode;
|
|
13
|
+
/**
|
|
14
|
+
* Label rendered in the cancel button
|
|
15
|
+
* @default "Cancel"
|
|
16
|
+
*/
|
|
17
|
+
cancelLabel?: React.ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the modal is open or not
|
|
20
|
+
*/
|
|
21
|
+
open: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Callback that fires when the user closes the modal
|
|
24
|
+
*/
|
|
25
|
+
onClose: () => void;
|
|
26
|
+
/**
|
|
27
|
+
* [Optional] Whether to return focus to the element that triggered the modal
|
|
28
|
+
* @default false
|
|
29
|
+
*/
|
|
30
|
+
returnFocusOnEscape?: boolean;
|
|
31
|
+
};
|
|
32
|
+
declare const Modal: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
33
|
+
export default Modal;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
|
+
import React from "react";
|
|
25
|
+
import Box from "../Box/Box";
|
|
26
|
+
import Layer from "../Layer";
|
|
27
|
+
import Button, { IconButton } from "../Button";
|
|
28
|
+
import Animated from "../Animated";
|
|
29
|
+
var Modal = React.forwardRef(function (_a, ref) {
|
|
30
|
+
var open = _a.open, onClose = _a.onClose, onConfirm = _a.onConfirm, _b = _a.confirmLabel, confirmLabel = _b === void 0 ? "Ok" : _b, _c = _a.cancelLabel, cancelLabel = _c === void 0 ? "Cancel" : _c, returnFocusOnEscape = _a.returnFocusOnEscape, rest = __rest(_a, ["open", "onClose", "onConfirm", "confirmLabel", "cancelLabel", "returnFocusOnEscape"]);
|
|
31
|
+
return (_jsx(Animated, { className: "aui-modal-backdrop", animated: open, animateTo: { style: { opacity: 1 } }, animateFrom: { style: { opacity: 0 } }, children: _jsx(Layer, { onClose: onClose, returnFocusOnEscape: returnFocusOnEscape, children: _jsxs(Box, { role: "dialog", "aria-modal": "true", className: "aui-modal aui-corners--rounded", layout: { axis: "y", padding: "m", gap: "m" }, children: [_jsx(Box, { layout: {
|
|
32
|
+
axis: "x",
|
|
33
|
+
align: "center",
|
|
34
|
+
justify: "end",
|
|
35
|
+
width: "full",
|
|
36
|
+
}, children: _jsx(IconButton, { icon: "x", onClick: onClose }) }), _jsx(Box, __assign({}, rest, { ref: ref })), _jsxs(Box, { layout: {
|
|
37
|
+
axis: "x",
|
|
38
|
+
align: "center",
|
|
39
|
+
justify: "end",
|
|
40
|
+
width: "full",
|
|
41
|
+
gap: "m",
|
|
42
|
+
}, children: [_jsx(Button, { variant: "secondary", onClick: onClose, children: cancelLabel }), _jsx(Button, { onClick: function () {
|
|
43
|
+
onConfirm();
|
|
44
|
+
onClose();
|
|
45
|
+
}, children: confirmLabel })] })] }) }) }));
|
|
46
|
+
});
|
|
47
|
+
export default Modal;
|
|
@@ -18,5 +18,5 @@ type Props = React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElemen
|
|
|
18
18
|
*/
|
|
19
19
|
corners?: CornerType;
|
|
20
20
|
};
|
|
21
|
-
declare const
|
|
22
|
-
export default
|
|
21
|
+
declare const Select: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLSelectElement>>;
|
|
22
|
+
export default Select;
|
|
@@ -21,12 +21,12 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
return t;
|
|
22
22
|
};
|
|
23
23
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
|
-
import
|
|
24
|
+
import React from "react";
|
|
25
25
|
import classNames from "../../functions/classNames";
|
|
26
26
|
import Box from "../Box";
|
|
27
27
|
import Icon from "../Icon";
|
|
28
|
-
var Select = function (_a, ref) {
|
|
28
|
+
var Select = React.forwardRef(function (_a, ref) {
|
|
29
29
|
var className = _a.className, options = _a.options, getOptionLabel = _a.getOptionLabel, _b = _a.corners, corners = _b === void 0 ? "rounded" : _b, style = _a.style, disabled = _a.disabled, props = __rest(_a, ["className", "options", "getOptionLabel", "corners", "style", "disabled"]);
|
|
30
|
-
return (_jsxs(Box, { className: classNames("aui-select-container", "aui-corners--".concat(corners), disabled ? "aui-select-disabled" : undefined, className), style: style, children: [_jsx("select", __assign({}, props, { ref: ref, className: "aui-select aui-corners--".concat(corners), disabled: disabled, children: options.map(function (option, index) { return (_jsx("option", { value: option, children: (getOptionLabel === null || getOptionLabel === void 0 ? void 0 : getOptionLabel(option)) || option }, index)); }) })), _jsx(Icon, { icon: "chevron-down", className: "aui-select-icon", "aria-hidden": true })] }));
|
|
31
|
-
};
|
|
32
|
-
export default
|
|
30
|
+
return (_jsxs(Box, { layout: { axis: "x", align: "center" }, className: classNames("aui-select-container", "aui-corners--".concat(corners), disabled ? "aui-select-disabled" : undefined, className), style: style, children: [_jsx("select", __assign({}, props, { ref: ref, className: "aui-select aui-corners--".concat(corners), disabled: disabled, children: options.map(function (option, index) { return (_jsx("option", { value: option, children: (getOptionLabel === null || getOptionLabel === void 0 ? void 0 : getOptionLabel(option)) || option }, index)); }) })), _jsx(Icon, { icon: "chevron-down", className: "aui-select-icon", "aria-hidden": true })] }));
|
|
31
|
+
});
|
|
32
|
+
export default Select;
|
package/hooks/useFocusTrap.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useEffect, useRef
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
2
2
|
var selector = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable]';
|
|
3
3
|
/**
|
|
4
4
|
* A hook for trapping focus within an element.
|
|
@@ -10,48 +10,39 @@ var selector = 'a[href], area[href], input:not([disabled]), select:not([disabled
|
|
|
10
10
|
var useFocusTrap = function (isActive) {
|
|
11
11
|
if (isActive === void 0) { isActive = true; }
|
|
12
12
|
var trapRef = useRef(null);
|
|
13
|
-
var focusableElements = useRef(null);
|
|
14
|
-
var updateFocusableElements = useCallback(function () {
|
|
15
|
-
if (trapRef.current) {
|
|
16
|
-
focusableElements.current = trapRef.current.querySelectorAll(selector);
|
|
17
|
-
}
|
|
18
|
-
}, []);
|
|
19
13
|
useEffect(function () {
|
|
20
|
-
|
|
14
|
+
var trap = trapRef.current;
|
|
15
|
+
if (!isActive || !trap)
|
|
21
16
|
return;
|
|
22
|
-
updateFocusableElements();
|
|
23
17
|
var handleKeyDown = function (event) {
|
|
24
|
-
var _a;
|
|
25
18
|
if (event.key !== "Tab")
|
|
26
19
|
return;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return event.preventDefault();
|
|
30
|
-
}
|
|
31
|
-
var activeElement = document.activeElement;
|
|
32
|
-
var firstEl = focusableElements.current[0];
|
|
33
|
-
var lastEl = focusableElements.current[focusableElements.current.length - 1];
|
|
34
|
-
if (event.shiftKey && activeElement === firstEl) {
|
|
35
|
-
lastEl.focus();
|
|
20
|
+
var focusableElements = trap.querySelectorAll(selector);
|
|
21
|
+
if (!focusableElements.length) {
|
|
36
22
|
event.preventDefault();
|
|
23
|
+
return;
|
|
37
24
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
25
|
+
var first = focusableElements[0];
|
|
26
|
+
var last = focusableElements[focusableElements.length - 1];
|
|
27
|
+
var active = document.activeElement;
|
|
28
|
+
if (event.shiftKey) {
|
|
29
|
+
if (active === first || !trap.contains(active)) {
|
|
30
|
+
last.focus();
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
}
|
|
41
33
|
}
|
|
42
|
-
else
|
|
43
|
-
(
|
|
44
|
-
|
|
34
|
+
else {
|
|
35
|
+
if (active === last || !trap.contains(active)) {
|
|
36
|
+
first.focus();
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
}
|
|
45
39
|
}
|
|
46
40
|
};
|
|
47
|
-
|
|
48
|
-
observer.observe(trapRef.current, { childList: true, subtree: true });
|
|
49
|
-
document.addEventListener("keydown", handleKeyDown);
|
|
41
|
+
trap.addEventListener("keydown", handleKeyDown, true);
|
|
50
42
|
return function () {
|
|
51
|
-
|
|
52
|
-
observer.disconnect();
|
|
43
|
+
trap.removeEventListener("keydown", handleKeyDown, true);
|
|
53
44
|
};
|
|
54
|
-
}, [isActive
|
|
45
|
+
}, [isActive]);
|
|
55
46
|
return trapRef;
|
|
56
47
|
};
|
|
57
48
|
export default useFocusTrap;
|
package/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { default as Accordion } from "./components/Accordion";
|
|
2
2
|
export { default as Alert } from "./components/Alert";
|
|
3
3
|
export { default as Animated } from "./components/Animated";
|
|
4
|
+
export { default as Avatar } from "./components/Avatar";
|
|
4
5
|
export { default as Badge } from "./components/Badge";
|
|
5
6
|
export { default as Banner } from "./components/Banner";
|
|
6
7
|
export { default as Box } from "./components/Box";
|
|
@@ -16,6 +17,7 @@ export * from "./components/Input";
|
|
|
16
17
|
export { default as Layer } from "./components/Layer";
|
|
17
18
|
export { default as Link } from "./components/Link";
|
|
18
19
|
export * from "./components/Link";
|
|
20
|
+
export { default as Modal } from "./components/Modal";
|
|
19
21
|
export { default as Select } from "./components/Select";
|
|
20
22
|
export { default as Spinner } from "./components/Spinner";
|
|
21
23
|
export * from "./hooks";
|
package/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export { default as Accordion } from "./components/Accordion";
|
|
3
3
|
export { default as Alert } from "./components/Alert";
|
|
4
4
|
export { default as Animated } from "./components/Animated";
|
|
5
|
+
export { default as Avatar } from "./components/Avatar";
|
|
5
6
|
export { default as Badge } from "./components/Badge";
|
|
6
7
|
export { default as Banner } from "./components/Banner";
|
|
7
8
|
export { default as Box } from "./components/Box";
|
|
@@ -17,6 +18,7 @@ export * from "./components/Input";
|
|
|
17
18
|
export { default as Layer } from "./components/Layer";
|
|
18
19
|
export { default as Link } from "./components/Link";
|
|
19
20
|
export * from "./components/Link";
|
|
21
|
+
export { default as Modal } from "./components/Modal";
|
|
20
22
|
export { default as Select } from "./components/Select";
|
|
21
23
|
export { default as Spinner } from "./components/Spinner";
|
|
22
24
|
// Hooks
|
package/package.json
CHANGED
package/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--aui-xxs: 2px;--aui-xs: 4px;--aui-s: 8px;--aui-m: 16px;--aui-l: 24px;--aui-xl: 32px;--aui-xxl: 64px;--aui-moon-gray: #ccc;--aui-dark-gray: #555;--aui-darkest-gray: #333;--aui-obsidian: #121212;--aui-focus-ring-color: #b2dbfa;--aui-default-text-color: black;--aui-default-background: white;--aui-default-border: var(--aui-moon-gray);--aui-disabled-opacity: 0.5;--aui-default-transition: 0.25s ease-in-out;--aui-default-opacity-dim: 0.75;--aui-container-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.16);--aui-sharp-radius: 0;--aui-rounded-radius: 8px;--aui-pill-radius: 9999px;--aui-button-primary-background: black;--aui-button-primary-color: white;--aui-button-secondary-border-hover: var(--aui-darkest-gray);--aui-subtle-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16);--aui-button-primary-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.36);--aui-success-background: #dff2e1;--aui-success-color: #1b5e20;--aui-success-border: #b2dfb1;--aui-warning-background: #fceeb6;--aui-warning-color: #b23904;--aui-warning-border: #e6d5a2;--aui-error-background: #fdecea;--aui-error-color: #b71c1c;--aui-error-border: #f5b7b7;--aui-info-background: #e3f2fd;--aui-info-color: #0d47a1;--aui-info-border: #90caf9;--aui-static-background: #e8e8e8;--aui-layer-backdrop-background: rgba(200, 200, 200, 0.7);--aui-link-color: #0070ff;--aui-select-icon: var(--aui-dark-gray)}[data-theme=dark]{--aui-focus-ring-color: #6699cc;--aui-default-text-color: white;--aui-default-background: var(--aui-obsidian);--aui-default-border: var(--aui-dark-gray);--aui-container-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.36);--aui-button-primary-background: white;--aui-button-primary-color: var(--aui-obsidian);--aui-button-secondary-border-hover: var(--aui-moon-gray);--aui-subtle-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);--aui-button-primary-box-shadow: 0 1px 2px rgba(64, 64, 64, 0.8);--aui-success-background: #2a5733;--aui-success-color: #d9efd8;--aui-success-border: #439e4a;--aui-warning-background: #736230;--aui-warning-color: #fff6d1;--aui-warning-border: #927a3b;--aui-error-background: #663232;--aui-error-color: #f9dadc;--aui-error-border: #8d2a2a;--aui-info-background: #335f72;--aui-info-color: #d4f1f5;--aui-info-border: #1d8ea4;--aui-static-background: var(--aui-darkest-gray);--aui-layer-backdrop-background: rgba(55, 55, 55, 0.7);--aui-link-color: #33bfff;--aui-select-icon: var(--aui-moon-gray)}.aui-flex-x,.aui-flex-y,.aui-flex--x,.aui-flex--y{display:flex}.aui-flex-x{flex-direction:row}.aui-flex-y{flex-direction:column}.aui-flex--x{flex-direction:row-reverse}.aui-flex--y{flex-direction:column-reverse}.aui-flex-wrap{flex-wrap:wrap}.aui-align-start{align-items:flex-start}.aui-align-center{align-items:center}.aui-align-end{align-items:flex-end}.aui-justify-start{justify-content:flex-start}.aui-justify-center{justify-content:center}.aui-justify-between{justify-content:space-between}.aui-justify-around{justify-content:space-around}.aui-justify-end{justify-content:flex-end}.aui-icon-xxs{width:8px;height:8px}.aui-icon-xs{width:12px;height:12px}.aui-icon-s{width:16px;height:16px}.aui-icon-m{width:24px;height:24px}.aui-icon-l{width:32px;height:32px}.aui-icon-xl{width:48px;height:48px}.aui-icon-xxl{width:64px;height:64px}.aui-gap-none{gap:0}.aui-gap-xxs{gap:var(--aui-xxs)}.aui-gap-xs{gap:var(--aui-xs)}.aui-gap-s{gap:var(--aui-s)}.aui-gap-m{gap:var(--aui-m)}.aui-gap-l{gap:var(--aui-l)}.aui-gap-xl{gap:var(--aui-xl)}.aui-gap-xxl{gap:var(--aui-xxl)}.aui-pa-none{padding:0}.aui-pa-xxs{padding:var(--aui-xxs)}.aui-pa-xs{padding:var(--aui-xs)}.aui-pa-s{padding:var(--aui-s)}.aui-pa-m{padding:var(--aui-m)}.aui-pa-l{padding:var(--aui-l)}.aui-pa-xl{padding:var(--aui-xl)}.aui-pa-xxl{padding:var(--aui-xxl)}.aui-pt-none{padding-top:0}.aui-pt-xxs{padding-top:var(--aui-xxs)}.aui-pt-xs{padding-top:var(--aui-xs)}.aui-pt-s{padding-top:var(--aui-s)}.aui-pt-m{padding-top:var(--aui-m)}.aui-pt-l{padding-top:var(--aui-l)}.aui-pt-xl{padding-top:var(--aui-xl)}.aui-pt-xxl{padding-top:var(--aui-xxl)}.aui-pb-none{padding-bottom:0}.aui-pb-xxs{padding-bottom:var(--aui-xxs)}.aui-pb-xs{padding-bottom:var(--aui-xs)}.aui-pb-s{padding-bottom:var(--aui-s)}.aui-pb-m{padding-bottom:var(--aui-m)}.aui-pb-l{padding-bottom:var(--aui-l)}.aui-pb-xl{padding-bottom:var(--aui-xl)}.aui-pb-xxl{padding-bottom:var(--aui-xxl)}.aui-pl-none{padding-left:0}.aui-pl-xxs{padding-left:var(--aui-xxs)}.aui-pl-xs{padding-left:var(--aui-xs)}.aui-pl-s{padding-left:var(--aui-s)}.aui-pl-m{padding-left:var(--aui-m)}.aui-pl-l{padding-left:var(--aui-l)}.aui-pl-xl{padding-left:var(--aui-xl)}.aui-pl-xxl{padding-left:var(--aui-xxl)}.aui-pr-none{padding-right:0}.aui-pr-xxs{padding-right:var(--aui-xxs)}.aui-pr-xs{padding-right:var(--aui-xs)}.aui-pr-s{padding-right:var(--aui-s)}.aui-pr-m{padding-right:var(--aui-m)}.aui-pr-l{padding-right:var(--aui-l)}.aui-pr-xl{padding-right:var(--aui-xl)}.aui-pr-xxl{padding-right:var(--aui-xxl)}.aui-ma-auto{margin:auto}.aui-mt-auto{margin-top:auto}.aui-mb-auto{margin-bottom:auto}.aui-ml-auto{margin-left:auto}.aui-mr-auto{margin-right:auto}.aui-ma-none{margin:0}.aui-ma-xxs{margin:var(--aui-xxs)}.aui-ma-xs{margin:var(--aui-xs)}.aui-ma-s{margin:var(--aui-s)}.aui-ma-m{margin:var(--aui-m)}.aui-ma-l{margin:var(--aui-l)}.aui-ma-xl{margin:var(--aui-xl)}.aui-ma-xxl{margin:var(--aui-xxl)}.aui-mt-none{margin-top:0}.aui-mt-xxs{margin-top:var(--aui-xxs)}.aui-mt-xs{margin-top:var(--aui-xs)}.aui-mt-s{margin-top:var(--aui-s)}.aui-mt-m{margin-top:var(--aui-m)}.aui-mt-l{margin-top:var(--aui-l)}.aui-mt-xl{margin-top:var(--aui-xl)}.aui-mt-xxl{margin-top:var(--aui-xxl)}.aui-mb-none{margin-bottom:0}.aui-mb-xxs{margin-bottom:var(--aui-xxs)}.aui-mb-xs{margin-bottom:var(--aui-xs)}.aui-mb-s{margin-bottom:var(--aui-s)}.aui-mb-m{margin-bottom:var(--aui-m)}.aui-mb-l{margin-bottom:var(--aui-l)}.aui-mb-xl{margin-bottom:var(--aui-xl)}.aui-mb-xxl{margin-bottom:var(--aui-xxl)}.aui-ml-none{margin-left:0}.aui-ml-xxs{margin-left:var(--aui-xxs)}.aui-ml-xs{margin-left:var(--aui-xs)}.aui-ml-s{margin-left:var(--aui-s)}.aui-ml-m{margin-left:var(--aui-m)}.aui-ml-l{margin-left:var(--aui-l)}.aui-ml-xl{margin-left:var(--aui-xl)}.aui-ml-xxl{margin-left:var(--aui-xxl)}.aui-mr-none{margin-right:0}.aui-mr-xxs{margin-right:var(--aui-xxs)}.aui-mr-xs{margin-right:var(--aui-xs)}.aui-mr-s{margin-right:var(--aui-s)}.aui-mr-m{margin-right:var(--aui-m)}.aui-mr-l{margin-right:var(--aui-l)}.aui-mr-xl{margin-right:var(--aui-xl)}.aui-mr-xxl{margin-right:var(--aui-xxl)}.aui-w-full{width:100%}.aui-w-fit{width:fit-content}.aui-w-min{width:min-content}.aui-w-max{width:max-content}.aui-mw-full{max-width:100%}.aui-mw-fit{max-width:fit-content}.aui-mw-min{max-width:min-content}.aui-mw-max{max-width:max-content}.aui-h-full{height:100%}.aui-h-fit{height:fit-content}.aui-h-min{height:min-content}.aui-h-max{height:max-content}.aui-mh-full{max-height:100%}.aui-mh-fit{max-height:fit-content}.aui-mh-min{max-height:min-content}.aui-mh-max{max-height:max-content}.aui-corners--rounded{border-radius:var(--aui-rounded-radius)}.aui-corners--pill{border-radius:var(--aui-pill-radius)}.aui-corners--sharp{border-radius:var(--aui-sharp-radius)}.aui-content--success{background-color:var(--aui-success-background);color:var(--aui-success-color);border-color:var(--aui-success-border)}.aui-content--warning{background-color:var(--aui-warning-background);color:var(--aui-warning-color);border-color:var(--aui-warning-border)}.aui-content--error{background-color:var(--aui-error-background);color:var(--aui-error-color);border-color:var(--aui-error-border)}.aui-content--info{background-color:var(--aui-info-background);color:var(--aui-info-color);border-color:var(--aui-info-border)}.aui-content--static{background-color:var(--aui-static-background);color:var(--aui-default-text-color);border-color:var(--aui-default-border)}.aui-accordion{background-color:var(--aui-default-background);box-shadow:0 0 0 1px var(--aui-default-border) inset,var(--aui-container-box-shadow)}.aui-accordion-label{font-weight:600}.aui-accordion-hr{border:none;height:1px;background-color:var(--aui-default-border);width:100%;margin:0}.aui-accordion-arrow{color:var(--aui-select-icon)}.aui-alert{padding:var(--aui-m);border-style:solid;border-width:1px;font-weight:400}.aui-badge{padding:var(--aui-xxs) var(--aui-xs);border-style:solid;border-width:1px;font-weight:500;font-size:14px;width:fit-content}.aui-banner{padding:var(--aui-l) var(--aui-xl);border:none;font-weight:400;width:100%}.aui-action{color:inherit;text-decoration:none;cursor:pointer;outline-color:var(--aui-link-color)}.aui-action:focus:not(:focus-visible){outline:none}.aui-button{background:none;border:none;padding:0}.aui-button-size--regular{padding:var(--aui-s);font-weight:600}.aui-button-size--small{padding:var(--aui-xs);font-size:12px;font-weight:600}.aui-button:disabled{cursor:default !important;opacity:var(--aui-disabled-opacity)}.aui-button--primary{background-color:var(--aui-button-primary-background);color:var(--aui-button-primary-color);box-shadow:var(--aui-button-primary-box-shadow);transition:opacity var(--aui-default-transition)}.aui-button--secondary{color:var(--aui-default-text-color);background-color:var(--aui-default-background);box-shadow:0 0 0 1px var(--aui-default-border) inset,var(--aui-subtle-box-shadow);transition:box-shadow var(--aui-default-transition)}.aui-link{font-weight:600;color:var(--aui-link-color);transition:opacity var(--aui-default-transition)}@media(hover: hover){.aui-button--primary:not([disabled]):hover,.aui-link:hover{opacity:var(--aui-default-opacity-dim)}.aui-button--secondary:not([disabled]):hover{box-shadow:0 0 0 1px var(--aui-button-secondary-border-hover) inset,var(--aui-subtle-box-shadow)}}.aui-input-base{outline:none;border:none;background-color:inherit;color:inherit;padding:var(--aui-s);font-weight:400}.aui-input-base::selection{background-color:var(--aui-focus-ring-color)}.aui-icon-input{overflow:scroll}.aui-icon-input input{background-color:rgba(0,0,0,0);width:100%}.aui-input{transition:box-shadow var(--aui-default-transition);box-shadow:0 0 0 1px var(--aui-default-border) inset,var(--aui-subtle-box-shadow);background-color:var(--aui-default-background)}.aui-input:disabled{opacity:var(--aui-disabled-opacity);cursor:default}.aui-input:not([disabled]):focus-within,.aui-select-container:not([disabled]):focus-within{box-shadow:0 0 0 1px var(--aui-default-border) inset,var(--aui-subtle-box-shadow),0 0 0 3px var(--aui-focus-ring-color)}.aui-select-container{position:relative;padding:0;width:fit-content;transition:box-shadow var(--aui-default-transition);box-shadow:0 0 0 1px var(--aui-default-border) inset,var(--aui-subtle-box-shadow);background-color:var(--aui-default-background)}.aui-select{width:100%;color:inherit;border:none;outline:none;box-shadow:none;cursor:pointer;background-color:rgba(0,0,0,0);padding:var(--aui-s) 28px var(--aui-s) var(--aui-s);font-weight:600;appearance:none;-webkit-appearance:none;-moz-appearance:none}.aui-select-disabled *{opacity:var(--aui-disabled-opacity);cursor:default}.aui-select-icon{--size: 10px;color:var(--aui-select-icon);width:var(--size);height:var(--size);position:absolute;top:calc(50% + 1px);transform:translateY(-50%);right:var(--size);pointer-events:none}.aui-layer-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:10000;background:var(--aui-layer-backdrop-background)}.aui-icon *{color:currentColor;fill:currentColor}.aui-spinner{animation:aui-spinner-animation 1s linear infinite;transform-origin:center;height:var(--aui-l)}@keyframes aui-spinner-animation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.aui-carousel{max-width:100%;position:relative;overflow:hidden;min-height:var(--aui-xxl);min-width:var(--aui-xxl);width:fit-content}.aui-carousel-item{flex:0 0 100%;width:100%;height:100%}.aui-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:var(--aui-l);height:var(--aui-l);padding:0}.aui-carousel-dots{position:absolute;bottom:var(--aui-s);transform:translateX(-50%);left:50%}.aui-carousel-dot{width:var(--aui-m);height:var(--aui-s);padding:0}
|
|
1
|
+
:root{--aui-xxs: 2px;--aui-xs: 4px;--aui-s: 8px;--aui-m: 16px;--aui-l: 24px;--aui-xl: 32px;--aui-xxl: 64px;--aui-moon-gray: #ccc;--aui-dark-gray: #555;--aui-darkest-gray: #333;--aui-obsidian: #121212;--aui-focus-ring-color: #b2dbfa;--aui-default-text-color: black;--aui-default-background: white;--aui-default-border: var(--aui-moon-gray);--aui-disabled-opacity: 0.5;--aui-default-transition: 0.25s ease-in-out;--aui-default-opacity-dim: 0.75;--aui-floating-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);--aui-sharp-radius: 0;--aui-rounded-radius: 8px;--aui-pill-radius: 9999px;--aui-button-primary-background: black;--aui-button-primary-color: white;--aui-button-secondary-border-hover: var(--aui-darkest-gray);--aui-subtle-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16);--aui-button-primary-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.36);--aui-success-background: #dff2e1;--aui-success-color: #1b5e20;--aui-success-border: #b2dfb1;--aui-warning-background: #fceeb6;--aui-warning-color: #b23904;--aui-warning-border: #e6d5a2;--aui-error-background: #fdecea;--aui-error-color: #b71c1c;--aui-error-border: #f5b7b7;--aui-info-background: #e3f2fd;--aui-info-color: #0d47a1;--aui-info-border: #90caf9;--aui-avatar-purple: #bc54d6;--aui-avatar-blue: #618bdc;--aui-avatar-red: #ee6060;--aui-avatar-green: #add386;--aui-avatar-yellow: #f5c76d;--aui-static-background: #e8e8e8;--aui-layer-backdrop-background: rgba(200, 200, 200, 0.6);--aui-link-color: #0070ff;--aui-select-icon: var(--aui-dark-gray)}[data-theme=dark]{--aui-focus-ring-color: #6699cc;--aui-default-text-color: white;--aui-default-background: var(--aui-obsidian);--aui-default-border: var(--aui-dark-gray);--aui-floating-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);--aui-button-primary-background: white;--aui-button-primary-color: var(--aui-obsidian);--aui-button-secondary-border-hover: var(--aui-moon-gray);--aui-subtle-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);--aui-button-primary-box-shadow: 0 1px 2px rgba(64, 64, 64, 0.8);--aui-success-background: #2a5733;--aui-success-color: #d9efd8;--aui-success-border: #439e4a;--aui-warning-background: #736230;--aui-warning-color: #fff6d1;--aui-warning-border: #927a3b;--aui-error-background: #663232;--aui-error-color: #f9dadc;--aui-error-border: #8d2a2a;--aui-info-background: #335f72;--aui-info-color: #d4f1f5;--aui-info-border: #1d8ea4;--aui-avatar-purple: #771199;--aui-avatar-blue: #0b4cce;--aui-avatar-red: #bb1111;--aui-avatar-green: #307040;--aui-avatar-yellow: #bb8822;--aui-static-background: var(--aui-darkest-gray);--aui-layer-backdrop-background: rgba(55, 55, 55, 0.7);--aui-link-color: #33bfff;--aui-select-icon: var(--aui-moon-gray)}.aui-corners--rounded{border-radius:var(--aui-rounded-radius)}.aui-corners--pill{border-radius:var(--aui-pill-radius)}.aui-corners--sharp{border-radius:var(--aui-sharp-radius)}.aui-content--success{background-color:var(--aui-success-background);color:var(--aui-success-color);border-color:var(--aui-success-border)}.aui-content--warning{background-color:var(--aui-warning-background);color:var(--aui-warning-color);border-color:var(--aui-warning-border)}.aui-content--error{background-color:var(--aui-error-background);color:var(--aui-error-color);border-color:var(--aui-error-border)}.aui-content--info{background-color:var(--aui-info-background);color:var(--aui-info-color);border-color:var(--aui-info-border)}.aui-content--static{background-color:var(--aui-static-background);color:var(--aui-default-text-color);border-color:var(--aui-default-border)}.aui-modal{color:var(--aui-default-text-color);background-color:var(--aui-default-background);box-shadow:0 0 0 1px var(--aui-default-border) inset,var(--aui-floating-box-shadow);border-radius:var(--aui-rounded-radius);min-width:40%;max-width:100%}.aui-accordion{background-color:var(--aui-default-background);box-shadow:0 0 0 1px var(--aui-default-border) inset,var(--aui-subtle-box-shadow)}.aui-accordion-label{font-weight:600}.aui-accordion-hr{border:none;height:1px;background-color:var(--aui-default-border);width:100%;margin:0}.aui-accordion-arrow{color:var(--aui-select-icon)}.aui-alert{padding:var(--aui-m);border-style:solid;border-width:1px;font-weight:400}.aui-avatar{overflow:hidden;text-align:center;font-weight:600}.aui-badge{padding:var(--aui-xxs) var(--aui-xs);border-style:solid;border-width:1px;font-weight:500;font-size:14px;width:fit-content}.aui-banner{padding:var(--aui-l) var(--aui-xl);border:none;font-weight:400;width:100%}.aui-action{color:inherit;text-decoration:none;cursor:pointer;outline-color:var(--aui-link-color)}.aui-action:focus:not(:focus-visible){outline:none}.aui-button{background:none;border:none;padding:0}.aui-button-size--regular{padding:var(--aui-s);font-weight:600}.aui-button-size--small{padding:var(--aui-xs);font-size:12px;font-weight:600}.aui-button:disabled{cursor:default !important;opacity:var(--aui-disabled-opacity)}.aui-button--primary{background-color:var(--aui-button-primary-background);color:var(--aui-button-primary-color);box-shadow:var(--aui-button-primary-box-shadow);transition:opacity var(--aui-default-transition)}.aui-button--secondary{color:var(--aui-default-text-color);background-color:var(--aui-default-background);box-shadow:0 0 0 1px var(--aui-default-border) inset,var(--aui-subtle-box-shadow);transition:box-shadow var(--aui-default-transition)}.aui-dim,.aui-undim{transition:opacity var(--aui-default-transition)}.aui-dim{opacity:1}.aui-undim{opacity:var(--aui-default-opacity-dim)}.aui-link{font-weight:600;color:var(--aui-link-color);transition:opacity var(--aui-default-transition)}@media(hover: hover){.aui-button--primary:not([disabled]):hover,.aui-dim:not([disabled]):hover,.aui-link:hover{opacity:var(--aui-default-opacity-dim)}.aui-button--secondary:not([disabled]):hover{box-shadow:0 0 0 1px var(--aui-button-secondary-border-hover) inset,var(--aui-subtle-box-shadow)}.aui-undim:not([disabled]):hover{opacity:1}}.aui-input-base{outline:none;border:none;background-color:inherit;color:inherit;padding:var(--aui-s);font-weight:400}.aui-input-base::selection{background-color:var(--aui-focus-ring-color)}.aui-icon-input{overflow:scroll}.aui-icon-input input{background-color:rgba(0,0,0,0);width:100%}.aui-input{transition:box-shadow var(--aui-default-transition);box-shadow:0 0 0 1px var(--aui-default-border) inset,var(--aui-subtle-box-shadow);background-color:var(--aui-default-background)}.aui-input:disabled{opacity:var(--aui-disabled-opacity);cursor:default}.aui-input:not([disabled]):focus-within,.aui-select-container:not([disabled]):focus-within{box-shadow:0 0 0 1px var(--aui-default-border) inset,var(--aui-subtle-box-shadow),0 0 0 3px var(--aui-focus-ring-color)}.aui-select-container{position:relative;padding:0;width:fit-content;transition:box-shadow var(--aui-default-transition);box-shadow:0 0 0 1px var(--aui-default-border) inset,var(--aui-subtle-box-shadow);background-color:var(--aui-default-background)}.aui-select{width:100%;color:inherit;border:none;outline:none;box-shadow:none;cursor:pointer;background-color:rgba(0,0,0,0);padding:var(--aui-s) 28px var(--aui-s) var(--aui-s);font-weight:600;appearance:none;-webkit-appearance:none;-moz-appearance:none}.aui-select-disabled *{opacity:var(--aui-disabled-opacity);cursor:default}.aui-modal-backdrop,.aui-layer-backdrop{z-index:10000}.aui-layer-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--aui-layer-backdrop-background)}.aui-icon *{color:currentColor;fill:currentColor}.aui-spinner{animation:aui-spinner-animation 1s linear infinite;transform-origin:center;height:var(--aui-l)}@keyframes aui-spinner-animation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.aui-carousel{max-width:100%;position:relative;overflow:hidden;min-height:var(--aui-xxl);min-width:var(--aui-xxl);width:fit-content}.aui-carousel-item{flex:0 0 100%;width:100%;height:100%}.aui-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:var(--aui-l);height:var(--aui-l);padding:0}.aui-carousel-dots{position:absolute;bottom:var(--aui-s);transform:translateX(-50%);left:50%}.aui-carousel-dot{width:var(--aui-m);height:var(--aui-s);padding:0}.aui-flex-x,.aui-flex-y,.aui-flex--x,.aui-flex--y{display:flex}.aui-flex-x{flex-direction:row}.aui-flex-y{flex-direction:column}.aui-flex--x{flex-direction:row-reverse}.aui-flex--y{flex-direction:column-reverse}.aui-flex-wrap{flex-wrap:wrap}.aui-align-start{align-items:flex-start}.aui-align-center{align-items:center}.aui-align-end{align-items:flex-end}.aui-justify-start{justify-content:flex-start}.aui-justify-center{justify-content:center}.aui-justify-between{justify-content:space-between}.aui-justify-around{justify-content:space-around}.aui-justify-end{justify-content:flex-end}.aui-avatar-red{background-color:var(--aui-avatar-red)}.aui-avatar-yellow{background-color:var(--aui-avatar-yellow)}.aui-avatar-green{background-color:var(--aui-avatar-green)}.aui-avatar-blue{background-color:var(--aui-avatar-blue)}.aui-avatar-purple{background-color:var(--aui-avatar-purple)}.aui-avatar-xxs{width:12px;height:12px;line-height:12px;font-size:9.6px}.aui-avatar-xs{width:16px;height:16px;line-height:16px;font-size:12.8px}.aui-avatar-s{width:24px;height:24px;line-height:24px;font-size:19.2px}.aui-avatar-m{width:32px;height:32px;line-height:32px;font-size:25.6px}.aui-avatar-l{width:48px;height:48px;line-height:48px;font-size:38.4px}.aui-avatar-xl{width:64px;height:64px;line-height:64px;font-size:51.2px}.aui-avatar-xxl{width:128px;height:128px;line-height:128px;font-size:102.4px}.aui-icon-xxs{width:8px;height:8px}.aui-icon-xs{width:12px;height:12px}.aui-icon-s{width:16px;height:16px}.aui-icon-m{width:24px;height:24px}.aui-icon-l{width:32px;height:32px}.aui-icon-xl{width:48px;height:48px}.aui-icon-xxl{width:64px;height:64px}.aui-gap-none{gap:0}.aui-gap-xxs{gap:var(--aui-xxs)}.aui-gap-xs{gap:var(--aui-xs)}.aui-gap-s{gap:var(--aui-s)}.aui-gap-m{gap:var(--aui-m)}.aui-gap-l{gap:var(--aui-l)}.aui-gap-xl{gap:var(--aui-xl)}.aui-gap-xxl{gap:var(--aui-xxl)}.aui-pa-none{padding:0}.aui-pa-xxs{padding:var(--aui-xxs)}.aui-pa-xs{padding:var(--aui-xs)}.aui-pa-s{padding:var(--aui-s)}.aui-pa-m{padding:var(--aui-m)}.aui-pa-l{padding:var(--aui-l)}.aui-pa-xl{padding:var(--aui-xl)}.aui-pa-xxl{padding:var(--aui-xxl)}.aui-pt-none{padding-top:0}.aui-pt-xxs{padding-top:var(--aui-xxs)}.aui-pt-xs{padding-top:var(--aui-xs)}.aui-pt-s{padding-top:var(--aui-s)}.aui-pt-m{padding-top:var(--aui-m)}.aui-pt-l{padding-top:var(--aui-l)}.aui-pt-xl{padding-top:var(--aui-xl)}.aui-pt-xxl{padding-top:var(--aui-xxl)}.aui-pb-none{padding-bottom:0}.aui-pb-xxs{padding-bottom:var(--aui-xxs)}.aui-pb-xs{padding-bottom:var(--aui-xs)}.aui-pb-s{padding-bottom:var(--aui-s)}.aui-pb-m{padding-bottom:var(--aui-m)}.aui-pb-l{padding-bottom:var(--aui-l)}.aui-pb-xl{padding-bottom:var(--aui-xl)}.aui-pb-xxl{padding-bottom:var(--aui-xxl)}.aui-pl-none{padding-left:0}.aui-pl-xxs{padding-left:var(--aui-xxs)}.aui-pl-xs{padding-left:var(--aui-xs)}.aui-pl-s{padding-left:var(--aui-s)}.aui-pl-m{padding-left:var(--aui-m)}.aui-pl-l{padding-left:var(--aui-l)}.aui-pl-xl{padding-left:var(--aui-xl)}.aui-pl-xxl{padding-left:var(--aui-xxl)}.aui-pr-none{padding-right:0}.aui-pr-xxs{padding-right:var(--aui-xxs)}.aui-pr-xs{padding-right:var(--aui-xs)}.aui-pr-s{padding-right:var(--aui-s)}.aui-pr-m{padding-right:var(--aui-m)}.aui-pr-l{padding-right:var(--aui-l)}.aui-pr-xl{padding-right:var(--aui-xl)}.aui-pr-xxl{padding-right:var(--aui-xxl)}.aui-ma-auto{margin:auto}.aui-mt-auto{margin-top:auto}.aui-mb-auto{margin-bottom:auto}.aui-ml-auto{margin-left:auto}.aui-mr-auto{margin-right:auto}.aui-ma-none{margin:0}.aui-ma-xxs{margin:var(--aui-xxs)}.aui-ma-xs{margin:var(--aui-xs)}.aui-ma-s{margin:var(--aui-s)}.aui-ma-m{margin:var(--aui-m)}.aui-ma-l{margin:var(--aui-l)}.aui-ma-xl{margin:var(--aui-xl)}.aui-ma-xxl{margin:var(--aui-xxl)}.aui-mt-none{margin-top:0}.aui-mt-xxs{margin-top:var(--aui-xxs)}.aui-mt-xs{margin-top:var(--aui-xs)}.aui-mt-s{margin-top:var(--aui-s)}.aui-mt-m{margin-top:var(--aui-m)}.aui-mt-l{margin-top:var(--aui-l)}.aui-mt-xl{margin-top:var(--aui-xl)}.aui-mt-xxl{margin-top:var(--aui-xxl)}.aui-mb-none{margin-bottom:0}.aui-mb-xxs{margin-bottom:var(--aui-xxs)}.aui-mb-xs{margin-bottom:var(--aui-xs)}.aui-mb-s{margin-bottom:var(--aui-s)}.aui-mb-m{margin-bottom:var(--aui-m)}.aui-mb-l{margin-bottom:var(--aui-l)}.aui-mb-xl{margin-bottom:var(--aui-xl)}.aui-mb-xxl{margin-bottom:var(--aui-xxl)}.aui-ml-none{margin-left:0}.aui-ml-xxs{margin-left:var(--aui-xxs)}.aui-ml-xs{margin-left:var(--aui-xs)}.aui-ml-s{margin-left:var(--aui-s)}.aui-ml-m{margin-left:var(--aui-m)}.aui-ml-l{margin-left:var(--aui-l)}.aui-ml-xl{margin-left:var(--aui-xl)}.aui-ml-xxl{margin-left:var(--aui-xxl)}.aui-mr-none{margin-right:0}.aui-mr-xxs{margin-right:var(--aui-xxs)}.aui-mr-xs{margin-right:var(--aui-xs)}.aui-mr-s{margin-right:var(--aui-s)}.aui-mr-m{margin-right:var(--aui-m)}.aui-mr-l{margin-right:var(--aui-l)}.aui-mr-xl{margin-right:var(--aui-xl)}.aui-mr-xxl{margin-right:var(--aui-xxl)}.aui-w-full{width:100%}.aui-w-fit{width:fit-content}.aui-w-min{width:min-content}.aui-w-max{width:max-content}.aui-mw-full{max-width:100%}.aui-mw-fit{max-width:fit-content}.aui-mw-min{max-width:min-content}.aui-mw-max{max-width:max-content}.aui-h-full{height:100%}.aui-h-fit{height:fit-content}.aui-h-min{height:min-content}.aui-h-max{height:max-content}.aui-mh-full{max-height:100%}.aui-mh-fit{max-height:fit-content}.aui-mh-min{max-height:min-content}.aui-mh-max{max-height:max-content}.aui-select-icon{--size: 10px;color:var(--aui-select-icon);width:var(--size);height:var(--size);position:absolute;top:calc(50% + 1px);transform:translateY(-50%);right:var(--size);pointer-events:none}
|
package/utils/types.d.ts
CHANGED
|
@@ -22,17 +22,21 @@ export type SizeDimension = "full" | "fit" | "min" | "max";
|
|
|
22
22
|
/**
|
|
23
23
|
* Size variants used for CSS.
|
|
24
24
|
*/
|
|
25
|
-
type SizeToken = "
|
|
25
|
+
export type SizeToken = "xxs" | "xs" | "s" | "m" | "l" | "xl" | "xxl";
|
|
26
|
+
/**
|
|
27
|
+
* Size variants used for padding & margin
|
|
28
|
+
*/
|
|
29
|
+
type SpacingSize = "none" | "xxs" | "xs" | "s" | "m" | "l" | "xl" | "xxl";
|
|
26
30
|
/**
|
|
27
31
|
* Used for margin
|
|
28
32
|
*/
|
|
29
|
-
type AutoSize =
|
|
33
|
+
type AutoSize = SpacingSize | "auto";
|
|
30
34
|
/** Layout props for a component */
|
|
31
35
|
export type Layout = {
|
|
32
36
|
/** Direction the layout spans; along the x-axis or y-axis (Equivalent to flex-direction) */
|
|
33
37
|
axis?: "x" | "y" | "-x" | "-y";
|
|
34
38
|
/** Spacing between children of the layout */
|
|
35
|
-
gap?:
|
|
39
|
+
gap?: SpacingSize;
|
|
36
40
|
/** Alignment orthogonal to the selected axis (Equivalent to align-items) */
|
|
37
41
|
align?: "start" | "center" | "end";
|
|
38
42
|
/** How to layout the children (Equivalent to justify-content) */
|
|
@@ -40,19 +44,19 @@ export type Layout = {
|
|
|
40
44
|
/** Whether to allow wrapping of layout children */
|
|
41
45
|
wrap?: boolean;
|
|
42
46
|
/** Padding inside the layout */
|
|
43
|
-
padding?:
|
|
47
|
+
padding?: SpacingSize;
|
|
44
48
|
/** Horizontal padding inside the layout */
|
|
45
|
-
paddingX?:
|
|
49
|
+
paddingX?: SpacingSize;
|
|
46
50
|
/** Vertical padding inside the layout */
|
|
47
|
-
paddingY?:
|
|
51
|
+
paddingY?: SpacingSize;
|
|
48
52
|
/** Top padding inside the layout */
|
|
49
|
-
paddingTop?:
|
|
53
|
+
paddingTop?: SpacingSize;
|
|
50
54
|
/** Bottom padding inside the layout */
|
|
51
|
-
paddingBottom?:
|
|
55
|
+
paddingBottom?: SpacingSize;
|
|
52
56
|
/** Left padding inside the layout */
|
|
53
|
-
paddingLeft?:
|
|
57
|
+
paddingLeft?: SpacingSize;
|
|
54
58
|
/** Right padding inside the layout */
|
|
55
|
-
paddingRight?:
|
|
59
|
+
paddingRight?: SpacingSize;
|
|
56
60
|
/** Margin outside the layout */
|
|
57
61
|
margin?: AutoSize;
|
|
58
62
|
/** Horizontal margin outside the layout */
|