@adamjanicki/ui 1.6.6 → 1.6.8

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.
Files changed (40) hide show
  1. package/components/Accordion/Accordion.js +12 -13
  2. package/components/Alert/Alert.d.ts +1 -6
  3. package/components/Alert/Alert.js +2 -2
  4. package/components/Animated/Animated.d.ts +21 -22
  5. package/components/Animated/Animated.js +2 -2
  6. package/components/Avatar/Avatar.d.ts +1 -6
  7. package/components/Avatar/Avatar.js +4 -4
  8. package/components/Badge/Badge.d.ts +1 -6
  9. package/components/Badge/Badge.js +2 -2
  10. package/components/Banner/Banner.js +2 -2
  11. package/components/Box/Box.d.ts +1 -1
  12. package/components/Button/Button.d.ts +19 -16
  13. package/components/Button/Button.js +18 -10
  14. package/components/Carousel/Carousel.js +16 -3
  15. package/components/Hamburger/Hamburger.d.ts +1 -1
  16. package/components/Icon/Icon.d.ts +2 -1
  17. package/components/Icon/Icon.js +2 -1
  18. package/components/Input/IconInput.d.ts +5 -17
  19. package/components/Input/IconInput.js +16 -3
  20. package/components/Input/Input.d.ts +5 -10
  21. package/components/Input/Input.js +3 -2
  22. package/components/Input/TextArea.d.ts +3 -9
  23. package/components/Input/TextArea.js +3 -2
  24. package/components/Layer/Layer.js +2 -2
  25. package/components/Link/Link.d.ts +7 -5
  26. package/components/Link/Link.js +12 -8
  27. package/components/Modal/Modal.js +12 -2
  28. package/components/Select/Select.d.ts +6 -5
  29. package/components/Select/Select.js +5 -3
  30. package/components/Spinner/Spinner.d.ts +2 -11
  31. package/components/Spinner/Spinner.js +1 -1
  32. package/components/ui.d.ts +5 -5
  33. package/components/ui.js +5 -5
  34. package/package.json +1 -1
  35. package/style.css +1 -1
  36. package/utils/transformVfx.d.ts +2 -0
  37. package/utils/transformVfx.js +103 -0
  38. package/utils/types.d.ts +70 -50
  39. package/utils/transformLayout.d.ts +0 -2
  40. package/utils/transformLayout.js +0 -76
@@ -22,23 +22,27 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  };
23
23
  import { jsx as _jsx } from "react/jsx-runtime";
24
24
  import React from "react";
25
- import { getButtonClassName } from "../Button/Button";
25
+ import { getButtonProps } from "../Button/Button";
26
26
  import classNames from "../../functions/classNames";
27
- import transformLayout from "../../utils/transformLayout";
27
+ import transformVfx from "../../utils/transformVfx";
28
28
  export var UnstyledLink = React.forwardRef(function (_a, ref) {
29
- var LinkElement = _a.LinkElement, to = _a.to, className = _a.className, external = _a.external, layout = _a.layout, rest = __rest(_a, ["LinkElement", "to", "className", "external", "layout"]);
30
- var props = __assign(__assign(__assign({}, (external ? { target: "_blank", rel: "noreferrer noopener" } : {})), rest), { className: classNames("aui-action", transformLayout(layout), className) });
29
+ var LinkElement = _a.LinkElement, to = _a.to, className = _a.className, vfx = _a.vfx, external = _a.external, rest = __rest(_a, ["LinkElement", "to", "className", "vfx", "external"]);
30
+ var props = __assign(__assign(__assign({}, (external ? { target: "_blank", rel: "noreferrer noopener" } : {})), rest), { className: classNames("aui-action", transformVfx(vfx), className) });
31
31
  if (LinkElement) {
32
32
  return _jsx(LinkElement, __assign({}, props, { to: to, ref: ref }));
33
33
  }
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, 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 })));
37
+ var className = _a.className, variant = _a.variant, vfx = _a.vfx, size = _a.size, props = __rest(_a, ["className", "variant", "vfx", "size"]);
38
+ var _b = getButtonProps({
39
+ variant: variant,
40
+ size: size,
41
+ }), additionalVfx = _b.vfx, additionalClassName = _b.className;
42
+ return (_jsx(UnstyledLink, __assign({}, props, { className: classNames(additionalClassName, className), vfx: __assign(__assign({}, additionalVfx), vfx), ref: ref })));
39
43
  });
40
44
  var Link = React.forwardRef(function (_a, 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 })));
45
+ var className = _a.className, vfx = _a.vfx, props = __rest(_a, ["className", "vfx"]);
46
+ return (_jsx(UnstyledLink, __assign({}, props, { vfx: __assign({ fontWeight: 6 }, vfx), className: classNames("aui-link", className), ref: ref })));
43
47
  });
44
48
  export default Link;
@@ -28,12 +28,22 @@ import Button, { IconButton } from "../Button";
28
28
  import Animated from "../Animated";
29
29
  var Modal = React.forwardRef(function (_a, ref) {
30
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", visible: 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: {
31
+ return (_jsx(Animated, { vfx: { z: "max" }, visible: open, animateTo: { vfx: { opacity: "full" } }, animateFrom: { vfx: { opacity: "none" } }, children: _jsx(Layer, { onClose: onClose, returnFocusOnEscape: returnFocusOnEscape, children: _jsxs(Box, { role: "dialog", "aria-modal": "true", vfx: {
32
+ axis: "y",
33
+ padding: "m",
34
+ gap: "m",
35
+ radius: "rounded",
36
+ maxWidth: "full",
37
+ shadow: "floating",
38
+ border: true,
39
+ color: "default",
40
+ backgroundColor: "default",
41
+ }, children: [_jsx(Box, { vfx: {
32
42
  axis: "x",
33
43
  align: "center",
34
44
  justify: "end",
35
45
  width: "full",
36
- }, children: _jsx(IconButton, { icon: "x", onClick: onClose }) }), _jsx(Box, __assign({}, rest, { ref: ref })), _jsxs(Box, { layout: {
46
+ }, children: _jsx(IconButton, { icon: "x", onClick: onClose }) }), _jsx(Box, __assign({}, rest, { ref: ref })), _jsxs(Box, { vfx: {
37
47
  axis: "x",
38
48
  align: "center",
39
49
  justify: "end",
@@ -1,6 +1,8 @@
1
1
  import React from "react";
2
- import type { CornerType } from "../../utils/types";
3
- type Props = React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement> & {
2
+ import { type BoxProps } from "../Box/Box";
3
+ import ui from "../ui";
4
+ type SelectProps = React.ComponentProps<typeof ui.select>;
5
+ type Props = Omit<BoxProps, "children"> & {
4
6
  /**
5
7
  * Array of options to display in the select
6
8
  */
@@ -13,10 +15,9 @@ type Props = React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElemen
13
15
  */
14
16
  getOptionLabel?: (option: string) => string;
15
17
  /**
16
- * [Optional] The corner style of the select element.
17
- * @default "rounded"
18
+ * Props to pass to the underlying select element
18
19
  */
19
- corners?: CornerType;
20
+ selectProps?: SelectProps;
20
21
  };
21
22
  declare const Select: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLSelectElement>>;
22
23
  export default Select;
@@ -23,10 +23,12 @@ var __rest = (this && this.__rest) || function (s, e) {
23
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
24
  import React from "react";
25
25
  import classNames from "../../functions/classNames";
26
- import Box from "../Box";
26
+ import Box from "../Box/Box";
27
27
  import Icon from "../Icon";
28
+ import ui from "../ui";
28
29
  var Select = React.forwardRef(function (_a, ref) {
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, { 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 })] }));
30
+ var className = _a.className, options = _a.options, vfx = _a.vfx, getOptionLabel = _a.getOptionLabel, selectProps = _a.selectProps, rest = __rest(_a, ["className", "options", "vfx", "getOptionLabel", "selectProps"]);
31
+ var selectClassName = (selectProps || {}).className;
32
+ return (_jsxs(Box, __assign({ vfx: __assign({ pos: "relative", width: "fit", axis: "x", align: "center", radius: "rounded", backgroundColor: "default", color: "default", padding: "none" }, vfx), className: classNames("aui-select-container", (selectProps === null || selectProps === void 0 ? void 0 : selectProps.disabled) ? "aui-select-disabled" : undefined, className) }, rest, { children: [_jsx(ui.select, __assign({}, selectProps, { className: classNames("aui-select", selectClassName), ref: ref, 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
33
  });
32
34
  export default Select;
@@ -1,13 +1,4 @@
1
- import type { Style } from "../../utils/types";
2
- type Props = {
3
- /**
4
- * [Optional] Additional class names to apply to the spinner.
5
- */
6
- className?: string;
7
- /**
8
- * [Optional] Additional styles to apply to the spinner.
9
- */
10
- style?: Style;
11
- };
1
+ import ui from "../ui";
2
+ type Props = Omit<React.ComponentProps<typeof ui.svg>, "children" | "viewBox">;
12
3
  declare const Spinner: ({ className, ...props }: Props) => import("react/jsx-runtime").JSX.Element;
13
4
  export default Spinner;
@@ -26,6 +26,6 @@ var Spinner = function (_a) {
26
26
  var className = _a.className, props = __rest(_a, ["className"]);
27
27
  return (
28
28
  // Designed on 2023-08-18
29
- _jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", className: classNames("aui-spinner", className) }, props, { children: _jsx("path", { fill: "currentColor", d: "M256,0C114.62,0,0,114.62,0,256S114.62,512,256,512c70.64,0,134.59-28.61,180.91-74.88l-31.11-31.11c-38.35,38.3-91.31,61.99-149.8,61.99-117.08,0-212-94.92-212-212S138.92,44,256,44V0Z" }) })));
29
+ _jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg" }, props, { viewBox: "0 0 512 512", className: classNames("aui-spinner", className), children: _jsx("path", { fill: "currentColor", d: "M256,0C114.62,0,0,114.62,0,256S114.62,512,256,512c70.64,0,134.59-28.61,180.91-74.88l-31.11-31.11c-38.35,38.3-91.31,61.99-149.8,61.99-117.08,0-212-94.92-212-212S138.92,44,256,44V0Z" }) })));
30
30
  };
31
31
  export default Spinner;
@@ -1,16 +1,16 @@
1
1
  import React from "react";
2
- import type { Layout } from "../utils/types";
2
+ import type { Vfx } from "../utils/types";
3
3
  type HtmlTag = keyof React.JSX.IntrinsicElements;
4
4
  type Props<T extends HtmlTag> = React.ComponentPropsWithRef<T> & {
5
5
  /**
6
- * The organization of this element and its children.
6
+ * The VFX or other organizational css to apply to this element.
7
7
  * Properties are translated to class names before being applied.
8
8
  */
9
- layout?: Layout;
9
+ vfx?: Vfx;
10
10
  };
11
- declare function createLayoutElement<T extends HtmlTag>(tag: T): React.ForwardRefExoticComponent<React.PropsWithoutRef<Props<T>> & React.RefAttributes<React.ComponentRef<T>>>;
11
+ declare function createVfxElement<T extends HtmlTag>(tag: T): React.ForwardRefExoticComponent<React.PropsWithoutRef<Props<T>> & React.RefAttributes<React.ComponentRef<T>>>;
12
12
  type HtmlTags = {
13
- [K in HtmlTag]: ReturnType<typeof createLayoutElement<K>>;
13
+ [K in HtmlTag]: ReturnType<typeof createVfxElement<K>>;
14
14
  };
15
15
  declare const ui: HtmlTags;
16
16
  export default ui;
package/components/ui.js CHANGED
@@ -22,11 +22,11 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  };
23
23
  import React from "react";
24
24
  import { classNames } from "../functions";
25
- import transformLayout from "../utils/transformLayout";
26
- function createLayoutElement(tag) {
25
+ import transformVfx from "../utils/transformVfx";
26
+ function createVfxElement(tag) {
27
27
  var Component = React.forwardRef(function (_a, ref) {
28
- var layout = _a.layout, className = _a.className, props = __rest(_a, ["layout", "className"]);
29
- return React.createElement(tag, __assign(__assign({}, props), { ref: ref, className: classNames(transformLayout(layout), className) }));
28
+ var vfx = _a.vfx, className = _a.className, props = __rest(_a, ["vfx", "className"]);
29
+ return React.createElement(tag, __assign(__assign({}, props), { ref: ref, className: classNames(transformVfx(vfx), className) }));
30
30
  });
31
31
  return Component;
32
32
  }
@@ -36,7 +36,7 @@ var ui = new Proxy({}, {
36
36
  if (cachedComponent) {
37
37
  return cachedComponent;
38
38
  }
39
- var component = createLayoutElement(tag);
39
+ var component = createVfxElement(tag);
40
40
  cache[tag] = component;
41
41
  return component;
42
42
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adamjanicki/ui",
3
- "version": "1.6.6",
3
+ "version": "1.6.8",
4
4
  "description": "Basic UI components and hooks for React in TypeScript",
5
5
  "type": "module",
6
6
  "main": "./index.js",
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-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}
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-color-default: black;--aui-color-muted: var(--aui-dark-gray);--aui-default-background: white;--aui-default-border: var(--aui-moon-gray);--aui-opacity-disabled: 0.5;--aui-opacity-dim: 0.75;--aui-default-transition: 0.25s ease-in-out;--aui-floating-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);--aui-radius-none: 0;--aui-radius-subtle: 4px;--aui-radius-rounded: 8px;--aui-radius-max: 10000px;--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-static-color: var(--aui-color-default);--aui-static-border: var(--aui-default-border);--aui-layer-backdrop-background: rgba(200, 200, 200, 0.6);--aui-link-color: #0070ff}[data-theme=dark]{--aui-focus-ring-color: #6699cc;--aui-color-default: white;--aui-color-muted: var(--aui-moon-gray);--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-static-background: var(--aui-darkest-gray);--aui-static-color: var(--aui-color-default);--aui-static-border: var(--aui-default-border);--aui-avatar-purple: #771199;--aui-avatar-blue: #0b4cce;--aui-avatar-red: #bb1111;--aui-avatar-green: #307040;--aui-avatar-yellow: #bb8822;--aui-layer-backdrop-background: rgba(55, 55, 55, 0.7);--aui-link-color: #33bfff}.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-static-color);border-color:var(--aui-static-border)}.aui-alert,.aui-badge{border-style:solid;border-width:1px}.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:disabled{cursor:default !important;opacity:var(--aui-opacity-disabled)}.aui-button-primary{background-color:var(--aui-button-primary-background);border:1px solid 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-color-default);background-color:var(--aui-default-background);border:1px solid var(--aui-default-border);box-shadow:var(--aui-subtle-box-shadow);transition:border var(--aui-default-transition)}.aui-dim,.aui-undim{transition:opacity var(--aui-default-transition)}.aui-dim{opacity:1}.aui-undim{opacity:var(--aui-opacity-dim)}.aui-link{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-opacity-dim)}.aui-button-secondary:not([disabled]):hover{border-color:var(--aui-button-secondary-border-hover)}.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-input,.aui-select-container{transition:box-shadow var(--aui-default-transition);border:1px solid var(--aui-default-border);box-shadow:var(--aui-subtle-box-shadow);background-color:var(--aui-default-background)}.aui-input:disabled{opacity:var(--aui-opacity-disabled);cursor:default}.aui-input:not([disabled]):focus-within,.aui-select-container:not([disabled]):focus-within{box-shadow:var(--aui-subtle-box-shadow),0 0 0 3px var(--aui-focus-ring-color)}.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-opacity-disabled);cursor:default}.aui-layer-backdrop{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-item{flex:0 0 100%}.aui-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:var(--aui-l);height:var(--aui-l)}.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)}.aui-pos-static{position:static}.aui-pos-relative{position:relative}.aui-pos-absolute{position:absolute}.aui-pos-fixed{position:fixed}.aui-pos-sticky{position:sticky}.aui-flex-x{display:flex;flex-direction:row}.aui-flex-y{display:flex;flex-direction:column}.aui-flex--x{display:flex;flex-direction:row-reverse}.aui-flex--y{display:flex;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-end{justify-content:flex-end}.aui-justify-between{justify-content:space-between}.aui-justify-around{justify-content:space-around}.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-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-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-auto{margin-top:auto}.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-auto{margin-bottom:auto}.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-auto{margin-left:auto}.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-auto{margin-right:auto}.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-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-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-radius-none{border-radius:var(--aui-radius-none)}.aui-radius-subtle{border-radius:var(--aui-radius-subtle)}.aui-radius-rounded{border-radius:var(--aui-radius-rounded)}.aui-radius-max{border-radius:var(--aui-radius-max)}.aui-ba{border:1px solid var(--aui-default-border)}.aui-bt{border-top:1px solid var(--aui-default-border)}.aui-br{border-right:1px solid var(--aui-default-border)}.aui-bb{border-bottom:1px solid var(--aui-default-border)}.aui-bl{border-left:1px solid var(--aui-default-border)}.aui-bw-none{border-width:0px}.aui-bw-xs{border-width:1px}.aui-bw-s{border-width:2px}.aui-bw-m{border-width:4px}.aui-bw-l{border-width:8px}.aui-bw-xl{border-width:16px}.aui-bs-solid{border-style:solid}.aui-bs-dotted{border-style:dotted}.aui-bs-dashed{border-style:dashed}.aui-bs-none{border-style:none}.aui-bc-default{border-color:var(--aui-default-border)}.aui-bc-primary{border-color:var(--aui-color-default)}.aui-shadow-subtle{box-shadow:var(--aui-subtle-box-shadow)}.aui-shadow-floating{box-shadow:var(--aui-floating-box-shadow)}.aui-shadow-none{box-shadow:none}.aui-op-none{opacity:0}.aui-op-disabled{opacity:var(--aui-opacity-disabled)}.aui-op-dim{opacity:var(--aui-opacity-dim)}.aui-op-full{opacity:1}.aui-f-xxs{font-size:10px}.aui-f-xs{font-size:12px}.aui-f-s{font-size:14px}.aui-f-default{font-size:16px}.aui-f-m{font-size:20px}.aui-f-l{font-size:24px}.aui-f-xl{font-size:32px}.aui-f-xxl{font-size:48px}.aui-fw-1{font-weight:100}.aui-fw-2{font-weight:200}.aui-fw-3{font-weight:300}.aui-fw-4{font-weight:400}.aui-fw-5{font-weight:500}.aui-fw-6{font-weight:600}.aui-fw-7{font-weight:700}.aui-fw-8{font-weight:800}.aui-fw-9{font-weight:900}.aui-ta-left{text-align:left}.aui-ta-right{text-align:right}.aui-ta-center{text-align:center}.aui-it{font-style:italic}.aui-bg-default{background-color:var(--aui-color-default)}.aui-bg-muted{background-color:var(--aui-color-muted)}.aui-bg-inherit{background-color:inherit}.aui-bg-transparent{background-color:rgba(0,0,0,0)}.aui-bg-default{background-color:var(--aui-default-background)}.aui-bg-muted{background-color:var(--aui-static-background)}.aui-bg-inherit{background-color:inherit}.aui-bg-transparent{background-color:rgba(0,0,0,0)}.aui-ov-scroll{overflow:scroll}.aui-ov-x-scroll{overflow-x:scroll}.aui-ov-y-scroll{overflow-y:scroll}.aui-ov-hidden{overflow:hidden}.aui-ov-x-hidden{overflow-x:hidden}.aui-ov-y-hidden{overflow-y:hidden}.aui-z-auto{z-index:auto}.aui-z-floating{z-index:100}.aui-z-nav{z-index:1000}.aui-z-max{z-index:10000}.aui-select-icon{--size: 10px;color:var(--aui-color-muted);width:var(--size);height:var(--size);position:absolute;top:calc(50% + 1px);transform:translateY(-50%);right:var(--size);pointer-events:none}
@@ -0,0 +1,2 @@
1
+ import { Vfx } from "./types";
2
+ export default function transformVfx(vfx: Vfx | undefined): string | null;
@@ -0,0 +1,103 @@
1
+ export default function transformVfx(vfx) {
2
+ if (!vfx)
3
+ return null;
4
+ var pos = vfx.pos, axis = vfx.axis, wrap = vfx.wrap, align = vfx.align, justify = vfx.justify, gap = vfx.gap, overflow = vfx.overflow, overflowX = vfx.overflowX, overflowY = vfx.overflowY, z = vfx.z, padding = vfx.padding, paddingX = vfx.paddingX, paddingY = vfx.paddingY, paddingTop = vfx.paddingTop, paddingBottom = vfx.paddingBottom, paddingLeft = vfx.paddingLeft, paddingRight = vfx.paddingRight, margin = vfx.margin, marginX = vfx.marginX, marginY = vfx.marginY, marginTop = vfx.marginTop, marginBottom = vfx.marginBottom, marginLeft = vfx.marginLeft, marginRight = vfx.marginRight, width = vfx.width, height = vfx.height, maxWidth = vfx.maxWidth, maxHeight = vfx.maxHeight, border = vfx.border, borderTop = vfx.borderTop, borderBottom = vfx.borderBottom, borderRight = vfx.borderRight, borderLeft = vfx.borderLeft, borderColor = vfx.borderColor, borderStyle = vfx.borderStyle, borderWidth = vfx.borderWidth, fontSize = vfx.fontSize, fontWeight = vfx.fontWeight, textAlign = vfx.textAlign, italics = vfx.italics, radius = vfx.radius, shadow = vfx.shadow, color = vfx.color, backgroundColor = vfx.backgroundColor, opacity = vfx.opacity;
5
+ var classes = [];
6
+ // --- Layout ---
7
+ if (pos)
8
+ classes.push("aui-pos-".concat(pos));
9
+ if (axis)
10
+ classes.push("aui-flex-".concat(axis));
11
+ if (wrap)
12
+ classes.push("aui-flex-wrap");
13
+ if (align)
14
+ classes.push("aui-align-".concat(align));
15
+ if (justify)
16
+ classes.push("aui-justify-".concat(justify));
17
+ if (gap)
18
+ classes.push("aui-gap-".concat(gap));
19
+ if (overflow)
20
+ classes.push("aui-ov-".concat(overflow));
21
+ if (overflowX)
22
+ classes.push("aui-ov-x-".concat(overflowX));
23
+ if (overflowY)
24
+ classes.push("aui-ov-y-".concat(overflowY));
25
+ if (z)
26
+ classes.push("aui-z-".concat(z));
27
+ // --- Spacing ---
28
+ var pt = paddingTop !== null && paddingTop !== void 0 ? paddingTop : paddingY;
29
+ var pb = paddingBottom !== null && paddingBottom !== void 0 ? paddingBottom : paddingY;
30
+ var pl = paddingLeft !== null && paddingLeft !== void 0 ? paddingLeft : paddingX;
31
+ var pr = paddingRight !== null && paddingRight !== void 0 ? paddingRight : paddingX;
32
+ var mt = marginTop !== null && marginTop !== void 0 ? marginTop : marginY;
33
+ var mb = marginBottom !== null && marginBottom !== void 0 ? marginBottom : marginY;
34
+ var ml = marginLeft !== null && marginLeft !== void 0 ? marginLeft : marginX;
35
+ var mr = marginRight !== null && marginRight !== void 0 ? marginRight : marginX;
36
+ if (padding)
37
+ classes.push("aui-pa-".concat(padding));
38
+ if (pt)
39
+ classes.push("aui-pt-".concat(pt));
40
+ if (pb)
41
+ classes.push("aui-pb-".concat(pb));
42
+ if (pl)
43
+ classes.push("aui-pl-".concat(pl));
44
+ if (pr)
45
+ classes.push("aui-pr-".concat(pr));
46
+ if (margin)
47
+ classes.push("aui-ma-".concat(margin));
48
+ if (mt)
49
+ classes.push("aui-mt-".concat(mt));
50
+ if (mb)
51
+ classes.push("aui-mb-".concat(mb));
52
+ if (ml)
53
+ classes.push("aui-ml-".concat(ml));
54
+ if (mr)
55
+ classes.push("aui-mr-".concat(mr));
56
+ // --- Dimensions ---
57
+ if (width)
58
+ classes.push("aui-w-".concat(width));
59
+ if (height)
60
+ classes.push("aui-h-".concat(height));
61
+ if (maxWidth)
62
+ classes.push("aui-mw-".concat(maxWidth));
63
+ if (maxHeight)
64
+ classes.push("aui-mh-".concat(maxHeight));
65
+ // --- Borders ---
66
+ if (border)
67
+ classes.push("aui-ba");
68
+ if (borderTop)
69
+ classes.push("aui-bt");
70
+ if (borderBottom)
71
+ classes.push("aui-bb");
72
+ if (borderLeft)
73
+ classes.push("aui-bl");
74
+ if (borderRight)
75
+ classes.push("aui-br");
76
+ if (borderWidth)
77
+ classes.push("aui-bw-".concat(borderWidth));
78
+ if (borderStyle)
79
+ classes.push("aui-bs-".concat(borderStyle));
80
+ if (borderColor)
81
+ classes.push("aui-bc-".concat(borderColor));
82
+ // --- Typography ---
83
+ if (fontSize)
84
+ classes.push("aui-f-".concat(fontSize));
85
+ if (fontWeight)
86
+ classes.push("aui-fw-".concat(fontWeight));
87
+ if (textAlign)
88
+ classes.push("aui-ta-".concat(textAlign));
89
+ if (italics)
90
+ classes.push("aui-it");
91
+ // --- Misc ---
92
+ if (radius)
93
+ classes.push("aui-radius-".concat(radius));
94
+ if (shadow)
95
+ classes.push("aui-shadow-".concat(shadow));
96
+ if (color)
97
+ classes.push("aui-c-".concat(color));
98
+ if (backgroundColor)
99
+ classes.push("aui-bg-".concat(backgroundColor));
100
+ if (opacity)
101
+ classes.push("aui-op-".concat(opacity));
102
+ return classes.join(" ") || null;
103
+ }
package/utils/types.d.ts CHANGED
@@ -1,83 +1,103 @@
1
1
  import React from "react";
2
- /**
3
- * Default children type; can be a node or list of nodes
4
- */
5
2
  export type Children = React.ReactNode | React.ReactNode[];
6
- /**
7
- * The type of corner to display, controlling the border radius property.
8
- */
9
- export type CornerType = "pill" | "rounded" | "sharp";
10
- /**
11
- * The type of message associated with a piece of content.
12
- */
13
3
  export type ContentType = "success" | "warning" | "error" | "info" | "static";
14
- /**
15
- * Standard style object to apply inline styling to components.
16
- */
17
4
  export type Style = React.CSSProperties;
18
- /**
19
- * Used for width and height
20
- */
21
5
  export type SizeDimension = "full" | "fit" | "min" | "max";
22
- /**
23
- * Size variants used for CSS.
24
- */
25
6
  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";
30
- /**
31
- * Used for margin
32
- */
7
+ type SpacingSize = SizeToken | "none";
33
8
  type AutoSize = SpacingSize | "auto";
34
- /** Layout props for a component */
35
- export type Layout = {
36
- /** Direction the layout spans; along the x-axis or y-axis (Equivalent to flex-direction) */
9
+ type Color = "default" | "muted" | "inherit" | "transparent";
10
+ type Overflow = "hidden" | "scroll";
11
+ export type Vfx = {
12
+ /** Element's positioning */
13
+ pos?: "static" | "relative" | "absolute" | "fixed" | "sticky";
14
+ /** Direction the content spans; along the x-axis or y-axis (Equivalent to flex-direction) */
37
15
  axis?: "x" | "y" | "-x" | "-y";
38
- /** Spacing between children of the layout */
16
+ /** Spacing between children of the content */
39
17
  gap?: SpacingSize;
40
18
  /** Alignment orthogonal to the selected axis (Equivalent to align-items) */
41
19
  align?: "start" | "center" | "end";
42
- /** How to layout the children (Equivalent to justify-content) */
20
+ /** How to content the children (Equivalent to justify-content) */
43
21
  justify?: "start" | "center" | "between" | "around" | "end";
44
- /** Whether to allow wrapping of layout children */
22
+ /** Whether to allow wrapping of children */
45
23
  wrap?: boolean;
46
- /** Padding inside the layout */
24
+ /** How to handle overflow in the container */
25
+ overflow?: Overflow;
26
+ /** How to handle overflow in the X direction */
27
+ overflowX?: Overflow;
28
+ /** How to handle overflow in the Y direction */
29
+ overflowY?: Overflow;
30
+ /** Z-index to position the element at */
31
+ z?: "auto" | "floating" | "nav" | "max";
32
+ /** Padding inside the content */
47
33
  padding?: SpacingSize;
48
- /** Horizontal padding inside the layout */
34
+ /** Horizontal padding inside the content */
49
35
  paddingX?: SpacingSize;
50
- /** Vertical padding inside the layout */
36
+ /** Vertical padding inside the content */
51
37
  paddingY?: SpacingSize;
52
- /** Top padding inside the layout */
38
+ /** Top padding inside the content */
53
39
  paddingTop?: SpacingSize;
54
- /** Bottom padding inside the layout */
40
+ /** Bottom padding inside the content */
55
41
  paddingBottom?: SpacingSize;
56
- /** Left padding inside the layout */
42
+ /** Left padding inside the content */
57
43
  paddingLeft?: SpacingSize;
58
- /** Right padding inside the layout */
44
+ /** Right padding inside the content */
59
45
  paddingRight?: SpacingSize;
60
- /** Margin outside the layout */
46
+ /** Margin outside the content */
61
47
  margin?: AutoSize;
62
- /** Horizontal margin outside the layout */
48
+ /** Horizontal margin outside the content */
63
49
  marginX?: AutoSize;
64
- /** Vertical margin outside the layout */
50
+ /** Vertical margin outside the content */
65
51
  marginY?: AutoSize;
66
- /** Top margin outside the layout */
52
+ /** Top margin outside the content */
67
53
  marginTop?: AutoSize;
68
- /** Bottom margin outside the layout */
54
+ /** Bottom margin outside the content */
69
55
  marginBottom?: AutoSize;
70
- /** Left margin outside the layout */
56
+ /** Left margin outside the content */
71
57
  marginLeft?: AutoSize;
72
- /** Right margin outside the layout */
58
+ /** Right margin outside the content */
73
59
  marginRight?: AutoSize;
74
- /** Width of the layout */
60
+ /** Width of the content */
75
61
  width?: SizeDimension;
76
- /** Maximum width of the layout */
62
+ /** Maximum width of the content */
77
63
  maxWidth?: SizeDimension;
78
- /** Height of the laout */
64
+ /** Height of the content */
79
65
  height?: SizeDimension;
80
- /** Maximum of the layout */
66
+ /** Maximum of the content */
81
67
  maxHeight?: SizeDimension;
68
+ /** Border radius of the content */
69
+ radius?: "none" | "subtle" | "rounded" | "max";
70
+ /** Border for all edges */
71
+ border?: boolean;
72
+ /** Border top */
73
+ borderTop?: boolean;
74
+ /** Border bottom */
75
+ borderBottom?: boolean;
76
+ /** Border left */
77
+ borderLeft?: boolean;
78
+ /** Border right */
79
+ borderRight?: boolean;
80
+ /** Border thickness */
81
+ borderWidth?: SpacingSize;
82
+ /** Border type */
83
+ borderStyle?: "none" | "solid" | "dotted" | "dashed";
84
+ /** Border color */
85
+ borderColor?: "default" | "primary";
86
+ /** Box shadow presets */
87
+ shadow?: "subtle" | "floating" | "none";
88
+ /** Opacity presets */
89
+ opacity?: "none" | "disabled" | "dim" | "full";
90
+ /** Font size */
91
+ fontSize?: SizeToken | "default";
92
+ /** Font weight */
93
+ fontWeight?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
94
+ /** Text alignment */
95
+ textAlign?: "center" | "left" | "right";
96
+ /** Use italics? */
97
+ italics?: boolean;
98
+ /** Color */
99
+ color?: Color;
100
+ /** Background color */
101
+ backgroundColor?: Color;
82
102
  };
83
103
  export {};
@@ -1,2 +0,0 @@
1
- import { Layout } from "./types";
2
- export default function transformLayout(layout: Layout | undefined): string | null;
@@ -1,76 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import { classNames } from "../functions";
13
- // Prefix maps for padding and margin keys
14
- var spacingPrefixMap = {
15
- padding: "pa",
16
- paddingTop: "pt",
17
- paddingBottom: "pb",
18
- paddingLeft: "pl",
19
- paddingRight: "pr",
20
- margin: "ma",
21
- marginTop: "mt",
22
- marginBottom: "mb",
23
- marginLeft: "ml",
24
- marginRight: "mr",
25
- };
26
- var dimensionPrefixMap = {
27
- width: "w",
28
- maxWidth: "mw",
29
- height: "h",
30
- maxHeight: "mh",
31
- };
32
- export default function transformLayout(layout) {
33
- if (!layout)
34
- return null;
35
- var axis = layout.axis, gap = layout.gap, align = layout.align, justify = layout.justify, wrap = layout.wrap, padding = layout.padding, paddingTop = layout.paddingTop, paddingBottom = layout.paddingBottom, paddingLeft = layout.paddingLeft, paddingRight = layout.paddingRight, paddingX = layout.paddingX, paddingY = layout.paddingY, margin = layout.margin, marginTop = layout.marginTop, marginBottom = layout.marginBottom, marginLeft = layout.marginLeft, marginRight = layout.marginRight, marginX = layout.marginX, marginY = layout.marginY, rest = __rest(layout, ["axis", "gap", "align", "justify", "wrap", "padding", "paddingTop", "paddingBottom", "paddingLeft", "paddingRight", "paddingX", "paddingY", "margin", "marginTop", "marginBottom", "marginLeft", "marginRight", "marginX", "marginY"]);
36
- var className = axis ? "aui-flex-".concat(axis) : null;
37
- if (wrap)
38
- className = classNames(className, "aui-flex-wrap");
39
- if (align)
40
- className = classNames(className, "aui-align-".concat(align));
41
- if (justify)
42
- className = classNames(className, "aui-justify-".concat(justify));
43
- // Gap
44
- if (gap) {
45
- className = classNames(className, "aui-gap-".concat(gap));
46
- }
47
- // Padding & margin
48
- var spacingProps = [
49
- ["padding", padding],
50
- ["paddingTop", paddingTop !== null && paddingTop !== void 0 ? paddingTop : paddingY],
51
- ["paddingBottom", paddingBottom !== null && paddingBottom !== void 0 ? paddingBottom : paddingY],
52
- ["paddingLeft", paddingLeft !== null && paddingLeft !== void 0 ? paddingLeft : paddingX],
53
- ["paddingRight", paddingRight !== null && paddingRight !== void 0 ? paddingRight : paddingX],
54
- ["margin", margin],
55
- ["marginTop", marginTop !== null && marginTop !== void 0 ? marginTop : marginY],
56
- ["marginBottom", marginBottom !== null && marginBottom !== void 0 ? marginBottom : marginY],
57
- ["marginLeft", marginLeft !== null && marginLeft !== void 0 ? marginLeft : marginX],
58
- ["marginRight", marginRight !== null && marginRight !== void 0 ? marginRight : marginX],
59
- ];
60
- spacingProps.forEach(function (_a) {
61
- var prop = _a[0], value = _a[1];
62
- if (value) {
63
- var prefix = spacingPrefixMap[prop];
64
- className = classNames(className, "aui-".concat(prefix, "-").concat(value));
65
- }
66
- });
67
- var dimensionProps = ["width", "height", "maxWidth", "maxHeight"];
68
- dimensionProps.forEach(function (prop) {
69
- var value = rest[prop];
70
- if (value) {
71
- var prefix = dimensionPrefixMap[prop];
72
- className = classNames(className, "aui-".concat(prefix, "-").concat(value));
73
- }
74
- });
75
- return className;
76
- }