@brycks/core-front 0.2.8 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/feedback/Drawer/Drawer.cjs +2 -2
- package/dist/components/feedback/Drawer/Drawer.cjs.map +1 -1
- package/dist/components/feedback/Drawer/Drawer.js +78 -74
- package/dist/components/feedback/Drawer/Drawer.js.map +1 -1
- package/dist/components/feedback/Modal/Modal.cjs +1 -1
- package/dist/components/feedback/Modal/Modal.cjs.map +1 -1
- package/dist/components/feedback/Modal/Modal.js +76 -70
- package/dist/components/feedback/Modal/Modal.js.map +1 -1
- package/dist/components/form/FormLabel/FormLabel.cjs +1 -1
- package/dist/components/form/FormLabel/FormLabel.cjs.map +1 -1
- package/dist/components/form/FormLabel/FormLabel.js +40 -40
- package/dist/components/form/FormLabel/FormLabel.js.map +1 -1
- package/dist/components/form/Input/Input.cjs +1 -1
- package/dist/components/form/Input/Input.js +13 -13
- package/dist/components/primitives/Button/Button.styles.cjs +1 -1
- package/dist/components/primitives/Button/Button.styles.cjs.map +1 -1
- package/dist/components/primitives/Button/Button.styles.js +24 -24
- package/dist/components/primitives/Button/Button.styles.js.map +1 -1
- package/dist/components/typography/Heading/Heading.cjs +1 -1
- package/dist/components/typography/Heading/Heading.cjs.map +1 -1
- package/dist/components/typography/Heading/Heading.js +42 -32
- package/dist/components/typography/Heading/Heading.js.map +1 -1
- package/dist/components/typography/Text/Text.cjs +1 -1
- package/dist/components/typography/Text/Text.cjs.map +1 -1
- package/dist/components/typography/Text/Text.js +59 -36
- package/dist/components/typography/Text/Text.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.cjs","sources":["../../../../src/components/typography/Text/Text.tsx"],"sourcesContent":["/**\r\n * Text Component\r\n *\r\n * A polymorphic text component for rendering body text with consistent styling.\r\n * Supports all text styles from the design system.\r\n *
|
|
1
|
+
{"version":3,"file":"Text.cjs","sources":["../../../../src/components/typography/Text/Text.tsx"],"sourcesContent":["/**\r\n * Text Component\r\n *\r\n * A polymorphic text component for rendering body text with consistent styling.\r\n * Supports all text styles from the design system.\r\n * Uses CSS variables for font sizes to enable dynamic scaling.\r\n *\r\n * @module components/typography/Text\r\n */\r\n\r\nimport React, {\r\n forwardRef,\r\n type ElementType,\r\n type ComponentPropsWithRef,\r\n type CSSProperties,\r\n type ReactNode,\r\n type ComponentPropsWithoutRef,\r\n} from 'react'\r\nimport {\r\n fontWeights,\r\n lineHeights,\r\n textStyles,\r\n spacing,\r\n type FontSize,\r\n type FontWeight,\r\n type LineHeight,\r\n} from '../../../design-system'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport interface TextOwnProps {\r\n /** Text style preset */\r\n variant?: 'body' | 'bodyLarge' | 'bodySmall' | 'label' | 'caption' | 'overline' | 'code'\r\n /** Font size */\r\n size?: FontSize\r\n /** Font weight */\r\n weight?: FontWeight\r\n /** Line height */\r\n leading?: LineHeight\r\n /** Text alignment */\r\n align?: CSSProperties['textAlign']\r\n /** Text color (CSS variable or direct value) */\r\n color?: string\r\n /** Whether text should truncate with ellipsis */\r\n truncate?: boolean\r\n /** Max number of lines before truncating */\r\n lineClamp?: number\r\n /** Custom class name */\r\n className?: string\r\n /** Custom inline styles */\r\n style?: CSSProperties\r\n /** Children */\r\n children?: ReactNode\r\n /** Test ID */\r\n testId?: string\r\n}\r\n\r\nexport type TextProps<E extends ElementType = 'p'> = TextOwnProps &\r\n Omit<ComponentPropsWithoutRef<E>, keyof TextOwnProps> & {\r\n /** The element type to render */\r\n as?: E\r\n }\r\n\r\ntype TextComponent = <E extends ElementType = 'p'>(\r\n props: TextProps<E> & { ref?: ComponentPropsWithRef<E>['ref'] }\r\n) => React.JSX.Element | null\r\n\r\n/**\r\n * Maps variant to CSS variable for font-size\r\n * Uses --brycks-fs-body-* for body text variants\r\n */\r\nconst variantFontSizeVar: Record<NonNullable<TextOwnProps['variant']>, string> = {\r\n body: 'var(--brycks-fs-body-md)',\r\n bodyLarge: 'var(--brycks-fs-body-lg)',\r\n bodySmall: 'var(--brycks-fs-body-base)',\r\n label: 'var(--brycks-fs-body-sm)',\r\n caption: 'var(--brycks-fs-body-xs)',\r\n overline: 'var(--brycks-fs-body-xs)',\r\n code: 'var(--brycks-fs-body-sm)',\r\n}\r\n\r\n/**\r\n * Maps FontSize to CSS variable\r\n */\r\nconst fontSizeToCssVar: Record<FontSize, string> = {\r\n xs: 'var(--brycks-fs-body-xs)',\r\n sm: 'var(--brycks-fs-body-sm)',\r\n base: 'var(--brycks-fs-body-base)',\r\n md: 'var(--brycks-fs-body-md)',\r\n lg: 'var(--brycks-fs-body-lg)',\r\n xl: 'var(--brycks-fs-h6)',\r\n '2xl': 'var(--brycks-fs-h5)',\r\n '3xl': 'var(--brycks-fs-h4)',\r\n '4xl': 'var(--brycks-fs-h3)',\r\n '5xl': 'var(--brycks-fs-h2)',\r\n '6xl': 'var(--brycks-fs-h1)',\r\n '7xl': 'var(--brycks-fs-display-sm)',\r\n '8xl': 'var(--brycks-fs-display-md)',\r\n '9xl': 'var(--brycks-fs-display-lg)',\r\n}\r\n\r\nconst variantMap: Record<\r\n NonNullable<TextOwnProps['variant']>,\r\n { element: ElementType; styles: CSSProperties }\r\n> = {\r\n body: { element: 'p', styles: textStyles.bodyDefault },\r\n bodyLarge: { element: 'p', styles: textStyles.bodyLarge },\r\n bodySmall: { element: 'p', styles: textStyles.bodySmall },\r\n label: { element: 'span', styles: textStyles.label },\r\n caption: { element: 'span', styles: textStyles.caption },\r\n overline: { element: 'span', styles: textStyles.overline },\r\n code: { element: 'code', styles: textStyles.code },\r\n}\r\n\r\nfunction buildTextStyles(props: TextOwnProps): CSSProperties {\r\n const variant = props.variant ?? 'body'\r\n const baseStyles = variantMap[variant].styles\r\n\r\n // Use CSS variables for font-size to enable dynamic scaling\r\n const fontSize = props.size\r\n ? fontSizeToCssVar[props.size]\r\n : variantFontSizeVar[variant]\r\n\r\n const styles: CSSProperties = {\r\n fontFamily: baseStyles.fontFamily,\r\n fontSize,\r\n fontWeight: props.weight ? fontWeights[props.weight] : baseStyles.fontWeight,\r\n lineHeight: props.leading ? lineHeights[props.leading] : baseStyles.lineHeight,\r\n letterSpacing: baseStyles.letterSpacing,\r\n }\r\n\r\n if ('textTransform' in baseStyles) {\r\n styles.textTransform = baseStyles.textTransform\r\n }\r\n\r\n if (props.align) styles.textAlign = props.align\r\n if (props.color) styles.color = props.color\r\n\r\n if (props.truncate) {\r\n styles.overflow = 'hidden'\r\n styles.textOverflow = 'ellipsis'\r\n styles.whiteSpace = 'nowrap'\r\n }\r\n\r\n if (props.lineClamp) {\r\n styles.display = '-webkit-box'\r\n styles.WebkitLineClamp = props.lineClamp\r\n styles.WebkitBoxOrient = 'vertical'\r\n styles.overflow = 'hidden'\r\n }\r\n\r\n return styles\r\n}\r\n\r\nconst TextInner = <E extends ElementType = 'p'>(\r\n { as, variant = 'body', className, style, children, testId, ...props }: TextProps<E>,\r\n ref: React.ForwardedRef<Element>\r\n) => {\r\n const Component = as || variantMap[variant].element\r\n const builtTextStyles = buildTextStyles({ variant, ...props } as TextOwnProps)\r\n\r\n // Remove custom props before spreading\r\n const {\r\n size: _size,\r\n weight: _weight,\r\n leading: _leading,\r\n align: _align,\r\n color: _color,\r\n truncate: _truncate,\r\n lineClamp: _lineClamp,\r\n ...rest\r\n } = props\r\n\r\n return (\r\n <Component\r\n ref={ref}\r\n className={cx('brycks-text', `brycks-text--${variant}`, className)}\r\n style={{ ...builtTextStyles, ...style }}\r\n data-testid={testId}\r\n {...rest}\r\n >\r\n {children}\r\n </Component>\r\n )\r\n}\r\n\r\nconst TextForwardRef = forwardRef(TextInner) as TextComponent\r\nexport const Text = Object.assign(TextForwardRef, { displayName: 'Text' })\r\n\r\n/** Monospace code text shorthand */\r\nconst CodeInner = (\r\n props: Omit<TextProps<'code'>, 'variant'>,\r\n ref: React.ForwardedRef<HTMLElement>\r\n) => {\r\n return (\r\n <Text\r\n {...props}\r\n ref={ref as ComponentPropsWithRef<'p'>['ref']}\r\n variant=\"code\"\r\n style={{\r\n backgroundColor: 'var(--brycks-background-muted)',\r\n padding: `${spacing[0.5]}px ${spacing[1.5]}px`,\r\n borderRadius: 'var(--brycks-radius-sm)',\r\n ...props.style,\r\n }}\r\n />\r\n )\r\n}\r\n\r\nconst CodeForwardRef = forwardRef(CodeInner) as TextComponent\r\nexport const Code = Object.assign(CodeForwardRef, { displayName: 'Code' })\r\n"],"names":["variantFontSizeVar","fontSizeToCssVar","variantMap","textStyles","buildTextStyles","props","variant","baseStyles","fontSize","styles","fontWeights","lineHeights","TextInner","as","className","style","children","testId","ref","Component","builtTextStyles","_size","_weight","_leading","_align","_color","_truncate","_lineClamp","rest","jsx","cx","TextForwardRef","forwardRef","Text","CodeInner","spacing","CodeForwardRef","Code"],"mappings":"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"}
|
|
@@ -1,9 +1,32 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { forwardRef as
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as y } from "react";
|
|
3
3
|
import { cx as x } from "../../../utils/styles.js";
|
|
4
|
-
import { textStyles as l, lineHeights as
|
|
5
|
-
import { spacing as
|
|
6
|
-
const
|
|
4
|
+
import { textStyles as l, lineHeights as v, fontWeights as k } from "../../../design-system/tokens/typography.js";
|
|
5
|
+
import { spacing as o } from "../../../design-system/tokens/spacing.js";
|
|
6
|
+
const h = {
|
|
7
|
+
body: "var(--brycks-fs-body-md)",
|
|
8
|
+
bodyLarge: "var(--brycks-fs-body-lg)",
|
|
9
|
+
bodySmall: "var(--brycks-fs-body-base)",
|
|
10
|
+
label: "var(--brycks-fs-body-sm)",
|
|
11
|
+
caption: "var(--brycks-fs-body-xs)",
|
|
12
|
+
overline: "var(--brycks-fs-body-xs)",
|
|
13
|
+
code: "var(--brycks-fs-body-sm)"
|
|
14
|
+
}, u = {
|
|
15
|
+
xs: "var(--brycks-fs-body-xs)",
|
|
16
|
+
sm: "var(--brycks-fs-body-sm)",
|
|
17
|
+
base: "var(--brycks-fs-body-base)",
|
|
18
|
+
md: "var(--brycks-fs-body-md)",
|
|
19
|
+
lg: "var(--brycks-fs-body-lg)",
|
|
20
|
+
xl: "var(--brycks-fs-h6)",
|
|
21
|
+
"2xl": "var(--brycks-fs-h5)",
|
|
22
|
+
"3xl": "var(--brycks-fs-h4)",
|
|
23
|
+
"4xl": "var(--brycks-fs-h3)",
|
|
24
|
+
"5xl": "var(--brycks-fs-h2)",
|
|
25
|
+
"6xl": "var(--brycks-fs-h1)",
|
|
26
|
+
"7xl": "var(--brycks-fs-display-sm)",
|
|
27
|
+
"8xl": "var(--brycks-fs-display-md)",
|
|
28
|
+
"9xl": "var(--brycks-fs-display-lg)"
|
|
29
|
+
}, c = {
|
|
7
30
|
body: { element: "p", styles: l.bodyDefault },
|
|
8
31
|
bodyLarge: { element: "p", styles: l.bodyLarge },
|
|
9
32
|
bodySmall: { element: "p", styles: l.bodySmall },
|
|
@@ -12,54 +35,54 @@ const c = {
|
|
|
12
35
|
overline: { element: "span", styles: l.overline },
|
|
13
36
|
code: { element: "code", styles: l.code }
|
|
14
37
|
};
|
|
15
|
-
function
|
|
16
|
-
const
|
|
17
|
-
fontFamily:
|
|
18
|
-
fontSize:
|
|
19
|
-
fontWeight: e.weight ?
|
|
20
|
-
lineHeight: e.leading ?
|
|
21
|
-
letterSpacing:
|
|
38
|
+
function w(e) {
|
|
39
|
+
const s = e.variant ?? "body", a = c[s].styles, r = e.size ? u[e.size] : h[s], t = {
|
|
40
|
+
fontFamily: a.fontFamily,
|
|
41
|
+
fontSize: r,
|
|
42
|
+
fontWeight: e.weight ? k[e.weight] : a.fontWeight,
|
|
43
|
+
lineHeight: e.leading ? v[e.leading] : a.lineHeight,
|
|
44
|
+
letterSpacing: a.letterSpacing
|
|
22
45
|
};
|
|
23
|
-
return "textTransform" in
|
|
46
|
+
return "textTransform" in a && (t.textTransform = a.textTransform), e.align && (t.textAlign = e.align), e.color && (t.color = e.color), e.truncate && (t.overflow = "hidden", t.textOverflow = "ellipsis", t.whiteSpace = "nowrap"), e.lineClamp && (t.display = "-webkit-box", t.WebkitLineClamp = e.lineClamp, t.WebkitBoxOrient = "vertical", t.overflow = "hidden"), t;
|
|
24
47
|
}
|
|
25
|
-
const
|
|
26
|
-
const f = e || c[
|
|
48
|
+
const S = ({ as: e, variant: s = "body", className: a, style: r, children: t, testId: b, ...n }, d) => {
|
|
49
|
+
const f = e || c[s].element, m = w({ variant: s, ...n }), {
|
|
27
50
|
size: _,
|
|
28
|
-
weight:
|
|
29
|
-
leading:
|
|
30
|
-
align:
|
|
31
|
-
color:
|
|
32
|
-
truncate:
|
|
33
|
-
lineClamp:
|
|
34
|
-
...
|
|
35
|
-
} =
|
|
36
|
-
return /* @__PURE__ */
|
|
51
|
+
weight: F,
|
|
52
|
+
leading: W,
|
|
53
|
+
align: L,
|
|
54
|
+
color: O,
|
|
55
|
+
truncate: R,
|
|
56
|
+
lineClamp: j,
|
|
57
|
+
...g
|
|
58
|
+
} = n;
|
|
59
|
+
return /* @__PURE__ */ i(
|
|
37
60
|
f,
|
|
38
61
|
{
|
|
39
|
-
ref:
|
|
40
|
-
className: x("brycks-text", `brycks-text--${
|
|
41
|
-
style: { ...
|
|
42
|
-
"data-testid":
|
|
43
|
-
...
|
|
44
|
-
children:
|
|
62
|
+
ref: d,
|
|
63
|
+
className: x("brycks-text", `brycks-text--${s}`, a),
|
|
64
|
+
style: { ...m, ...r },
|
|
65
|
+
"data-testid": b,
|
|
66
|
+
...g,
|
|
67
|
+
children: t
|
|
45
68
|
}
|
|
46
69
|
);
|
|
47
|
-
},
|
|
48
|
-
|
|
70
|
+
}, C = y(S), T = Object.assign(C, { displayName: "Text" }), p = (e, s) => /* @__PURE__ */ i(
|
|
71
|
+
T,
|
|
49
72
|
{
|
|
50
73
|
...e,
|
|
51
|
-
ref:
|
|
74
|
+
ref: s,
|
|
52
75
|
variant: "code",
|
|
53
76
|
style: {
|
|
54
77
|
backgroundColor: "var(--brycks-background-muted)",
|
|
55
|
-
padding: `${
|
|
78
|
+
padding: `${o[0.5]}px ${o[1.5]}px`,
|
|
56
79
|
borderRadius: "var(--brycks-radius-sm)",
|
|
57
80
|
...e.style
|
|
58
81
|
}
|
|
59
82
|
}
|
|
60
|
-
), z =
|
|
83
|
+
), z = y(p), A = Object.assign(z, { displayName: "Code" });
|
|
61
84
|
export {
|
|
62
85
|
A as Code,
|
|
63
|
-
|
|
86
|
+
T as Text
|
|
64
87
|
};
|
|
65
88
|
//# sourceMappingURL=Text.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","sources":["../../../../src/components/typography/Text/Text.tsx"],"sourcesContent":["/**\r\n * Text Component\r\n *\r\n * A polymorphic text component for rendering body text with consistent styling.\r\n * Supports all text styles from the design system.\r\n *
|
|
1
|
+
{"version":3,"file":"Text.js","sources":["../../../../src/components/typography/Text/Text.tsx"],"sourcesContent":["/**\r\n * Text Component\r\n *\r\n * A polymorphic text component for rendering body text with consistent styling.\r\n * Supports all text styles from the design system.\r\n * Uses CSS variables for font sizes to enable dynamic scaling.\r\n *\r\n * @module components/typography/Text\r\n */\r\n\r\nimport React, {\r\n forwardRef,\r\n type ElementType,\r\n type ComponentPropsWithRef,\r\n type CSSProperties,\r\n type ReactNode,\r\n type ComponentPropsWithoutRef,\r\n} from 'react'\r\nimport {\r\n fontWeights,\r\n lineHeights,\r\n textStyles,\r\n spacing,\r\n type FontSize,\r\n type FontWeight,\r\n type LineHeight,\r\n} from '../../../design-system'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport interface TextOwnProps {\r\n /** Text style preset */\r\n variant?: 'body' | 'bodyLarge' | 'bodySmall' | 'label' | 'caption' | 'overline' | 'code'\r\n /** Font size */\r\n size?: FontSize\r\n /** Font weight */\r\n weight?: FontWeight\r\n /** Line height */\r\n leading?: LineHeight\r\n /** Text alignment */\r\n align?: CSSProperties['textAlign']\r\n /** Text color (CSS variable or direct value) */\r\n color?: string\r\n /** Whether text should truncate with ellipsis */\r\n truncate?: boolean\r\n /** Max number of lines before truncating */\r\n lineClamp?: number\r\n /** Custom class name */\r\n className?: string\r\n /** Custom inline styles */\r\n style?: CSSProperties\r\n /** Children */\r\n children?: ReactNode\r\n /** Test ID */\r\n testId?: string\r\n}\r\n\r\nexport type TextProps<E extends ElementType = 'p'> = TextOwnProps &\r\n Omit<ComponentPropsWithoutRef<E>, keyof TextOwnProps> & {\r\n /** The element type to render */\r\n as?: E\r\n }\r\n\r\ntype TextComponent = <E extends ElementType = 'p'>(\r\n props: TextProps<E> & { ref?: ComponentPropsWithRef<E>['ref'] }\r\n) => React.JSX.Element | null\r\n\r\n/**\r\n * Maps variant to CSS variable for font-size\r\n * Uses --brycks-fs-body-* for body text variants\r\n */\r\nconst variantFontSizeVar: Record<NonNullable<TextOwnProps['variant']>, string> = {\r\n body: 'var(--brycks-fs-body-md)',\r\n bodyLarge: 'var(--brycks-fs-body-lg)',\r\n bodySmall: 'var(--brycks-fs-body-base)',\r\n label: 'var(--brycks-fs-body-sm)',\r\n caption: 'var(--brycks-fs-body-xs)',\r\n overline: 'var(--brycks-fs-body-xs)',\r\n code: 'var(--brycks-fs-body-sm)',\r\n}\r\n\r\n/**\r\n * Maps FontSize to CSS variable\r\n */\r\nconst fontSizeToCssVar: Record<FontSize, string> = {\r\n xs: 'var(--brycks-fs-body-xs)',\r\n sm: 'var(--brycks-fs-body-sm)',\r\n base: 'var(--brycks-fs-body-base)',\r\n md: 'var(--brycks-fs-body-md)',\r\n lg: 'var(--brycks-fs-body-lg)',\r\n xl: 'var(--brycks-fs-h6)',\r\n '2xl': 'var(--brycks-fs-h5)',\r\n '3xl': 'var(--brycks-fs-h4)',\r\n '4xl': 'var(--brycks-fs-h3)',\r\n '5xl': 'var(--brycks-fs-h2)',\r\n '6xl': 'var(--brycks-fs-h1)',\r\n '7xl': 'var(--brycks-fs-display-sm)',\r\n '8xl': 'var(--brycks-fs-display-md)',\r\n '9xl': 'var(--brycks-fs-display-lg)',\r\n}\r\n\r\nconst variantMap: Record<\r\n NonNullable<TextOwnProps['variant']>,\r\n { element: ElementType; styles: CSSProperties }\r\n> = {\r\n body: { element: 'p', styles: textStyles.bodyDefault },\r\n bodyLarge: { element: 'p', styles: textStyles.bodyLarge },\r\n bodySmall: { element: 'p', styles: textStyles.bodySmall },\r\n label: { element: 'span', styles: textStyles.label },\r\n caption: { element: 'span', styles: textStyles.caption },\r\n overline: { element: 'span', styles: textStyles.overline },\r\n code: { element: 'code', styles: textStyles.code },\r\n}\r\n\r\nfunction buildTextStyles(props: TextOwnProps): CSSProperties {\r\n const variant = props.variant ?? 'body'\r\n const baseStyles = variantMap[variant].styles\r\n\r\n // Use CSS variables for font-size to enable dynamic scaling\r\n const fontSize = props.size\r\n ? fontSizeToCssVar[props.size]\r\n : variantFontSizeVar[variant]\r\n\r\n const styles: CSSProperties = {\r\n fontFamily: baseStyles.fontFamily,\r\n fontSize,\r\n fontWeight: props.weight ? fontWeights[props.weight] : baseStyles.fontWeight,\r\n lineHeight: props.leading ? lineHeights[props.leading] : baseStyles.lineHeight,\r\n letterSpacing: baseStyles.letterSpacing,\r\n }\r\n\r\n if ('textTransform' in baseStyles) {\r\n styles.textTransform = baseStyles.textTransform\r\n }\r\n\r\n if (props.align) styles.textAlign = props.align\r\n if (props.color) styles.color = props.color\r\n\r\n if (props.truncate) {\r\n styles.overflow = 'hidden'\r\n styles.textOverflow = 'ellipsis'\r\n styles.whiteSpace = 'nowrap'\r\n }\r\n\r\n if (props.lineClamp) {\r\n styles.display = '-webkit-box'\r\n styles.WebkitLineClamp = props.lineClamp\r\n styles.WebkitBoxOrient = 'vertical'\r\n styles.overflow = 'hidden'\r\n }\r\n\r\n return styles\r\n}\r\n\r\nconst TextInner = <E extends ElementType = 'p'>(\r\n { as, variant = 'body', className, style, children, testId, ...props }: TextProps<E>,\r\n ref: React.ForwardedRef<Element>\r\n) => {\r\n const Component = as || variantMap[variant].element\r\n const builtTextStyles = buildTextStyles({ variant, ...props } as TextOwnProps)\r\n\r\n // Remove custom props before spreading\r\n const {\r\n size: _size,\r\n weight: _weight,\r\n leading: _leading,\r\n align: _align,\r\n color: _color,\r\n truncate: _truncate,\r\n lineClamp: _lineClamp,\r\n ...rest\r\n } = props\r\n\r\n return (\r\n <Component\r\n ref={ref}\r\n className={cx('brycks-text', `brycks-text--${variant}`, className)}\r\n style={{ ...builtTextStyles, ...style }}\r\n data-testid={testId}\r\n {...rest}\r\n >\r\n {children}\r\n </Component>\r\n )\r\n}\r\n\r\nconst TextForwardRef = forwardRef(TextInner) as TextComponent\r\nexport const Text = Object.assign(TextForwardRef, { displayName: 'Text' })\r\n\r\n/** Monospace code text shorthand */\r\nconst CodeInner = (\r\n props: Omit<TextProps<'code'>, 'variant'>,\r\n ref: React.ForwardedRef<HTMLElement>\r\n) => {\r\n return (\r\n <Text\r\n {...props}\r\n ref={ref as ComponentPropsWithRef<'p'>['ref']}\r\n variant=\"code\"\r\n style={{\r\n backgroundColor: 'var(--brycks-background-muted)',\r\n padding: `${spacing[0.5]}px ${spacing[1.5]}px`,\r\n borderRadius: 'var(--brycks-radius-sm)',\r\n ...props.style,\r\n }}\r\n />\r\n )\r\n}\r\n\r\nconst CodeForwardRef = forwardRef(CodeInner) as TextComponent\r\nexport const Code = Object.assign(CodeForwardRef, { displayName: 'Code' })\r\n"],"names":["variantFontSizeVar","fontSizeToCssVar","variantMap","textStyles","buildTextStyles","props","variant","baseStyles","fontSize","styles","fontWeights","lineHeights","TextInner","as","className","style","children","testId","ref","Component","builtTextStyles","_size","_weight","_leading","_align","_color","_truncate","_lineClamp","rest","jsx","cx","TextForwardRef","forwardRef","Text","CodeInner","spacing","CodeForwardRef","Code"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
*,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}*{margin:0;padding:0}html,body{height:100%}body{min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}h1,h2,h3,h4,h5,h6{text-wrap:balance}p{text-wrap:pretty}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--brycks-border-focus, #5578f4);outline-offset:2px}:focus:not(:focus-visible){outline:none}button{background:none;border:none;cursor:pointer}a{text-decoration:none}table{border-collapse:collapse;border-spacing:0}[hidden]{display:none!important}[disabled]{cursor:not-allowed}:root{--brycks-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--brycks-font-mono: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--brycks-font-size-xs: 12px;--brycks-font-size-sm: 14px;--brycks-font-size-md: 16px;--brycks-font-size-lg: 18px;--brycks-font-size-xl: 20px;--brycks-font-size-2xl: 24px;--brycks-font-size-3xl: 30px;--brycks-font-size-4xl: 36px;--brycks-space-0: 0;--brycks-space-px: 1px;--brycks-space-0-5: 2px;--brycks-space-1: 4px;--brycks-space-1-5: 6px;--brycks-space-2: 8px;--brycks-space-2-5: 10px;--brycks-space-3: 12px;--brycks-space-3-5: 14px;--brycks-space-4: 16px;--brycks-space-5: 20px;--brycks-space-6: 24px;--brycks-space-7: 28px;--brycks-space-8: 32px;--brycks-space-9: 36px;--brycks-space-10: 40px;--brycks-space-12: 48px;--brycks-space-14: 56px;--brycks-space-16: 64px;--brycks-space-20: 80px;--brycks-space-24: 96px;--brycks-spacing-1: var(--brycks-space-1);--brycks-spacing-2: var(--brycks-space-2);--brycks-spacing-2-5: var(--brycks-space-2-5);--brycks-spacing-3: var(--brycks-space-3);--brycks-spacing-4: var(--brycks-space-4);--brycks-spacing-5: var(--brycks-space-5);--brycks-spacing-6: var(--brycks-space-6);--brycks-spacing-8: var(--brycks-space-8);--brycks-radius-none: 0;--brycks-radius-xs: 2px;--brycks-radius-sm: 4px;--brycks-radius-md: 6px;--brycks-radius-default: 8px;--brycks-radius-lg: 10px;--brycks-radius-xl: 12px;--brycks-radius-2xl: 16px;--brycks-radius-3xl: 20px;--brycks-radius-4xl: 24px;--brycks-radius-full: 9999px;--brycks-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .03), 0 1px 3px 0 rgba(0, 0, 0, .06);--brycks-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .04), 0 2px 6px 0 rgba(0, 0, 0, .06), 0 0 1px 0 rgba(0, 0, 0, .04);--brycks-shadow-md: 0 2px 4px -1px rgba(0, 0, 0, .04), 0 4px 8px -1px rgba(0, 0, 0, .06), 0 8px 16px -2px rgba(0, 0, 0, .06);--brycks-shadow-lg: 0 4px 6px -2px rgba(0, 0, 0, .03), 0 8px 16px -4px rgba(0, 0, 0, .08), 0 16px 32px -8px rgba(0, 0, 0, .08);--brycks-shadow-xl: 0 8px 16px -4px rgba(0, 0, 0, .04), 0 16px 32px -8px rgba(0, 0, 0, .08), 0 32px 64px -16px rgba(0, 0, 0, .12);--brycks-shadow-2xl: 0 12px 24px -6px rgba(0, 0, 0, .05), 0 24px 48px -12px rgba(0, 0, 0, .1), 0 48px 96px -24px rgba(0, 0, 0, .15);--brycks-z-base: 0;--brycks-z-docked: 10;--brycks-z-dropdown: 1000;--brycks-z-sticky: 1100;--brycks-z-banner: 1200;--brycks-z-overlay: 1300;--brycks-z-modal: 1400;--brycks-z-popover: 1500;--brycks-z-toast: 1700;--brycks-z-tooltip: 1800;--brycks-duration-fast: .1s;--brycks-duration-normal: .2s;--brycks-duration-slow: .4s;--brycks-ease-out: cubic-bezier(0, 0, .2, 1);--brycks-ease-in-out: cubic-bezier(.4, 0, .2, 1);--brycks-ease-spring: cubic-bezier(.34, 1.56, .64, 1)}:root,[data-theme=light]{--brycks-background-app: #FFFFFF;--brycks-background-subtle: #FAFAFA;--brycks-background-muted: #F5F5F7;--brycks-background-elevated: #FFFFFF;--brycks-background-overlay: rgba(0, 0, 0, .4);--brycks-background-inverse: #1D1D1F;--brycks-background-default: #FAFAFA;--brycks-foreground-default: #1D1D1F;--brycks-foreground-muted: #636366;--brycks-foreground-subtle: #8E8E93;--brycks-foreground-disabled: #AEAEB2;--brycks-foreground-inverse: #FFFFFF;--brycks-foreground-link: #3B5CE9;--brycks-border-default: #E8E8ED;--brycks-border-muted: #F5F5F7;--brycks-border-strong: #D2D2D7;--brycks-border-focus: #5578F4;--brycks-primary-default: #3B5CE9;--brycks-primary-hover: #2D47D6;--brycks-primary-active: #2A3CAD;--brycks-primary-muted: #EEF4FF;--brycks-primary-soft-hover: #E0EBFF;--brycks-primary-foreground: #FFFFFF;--brycks-accent-default: #F86545;--brycks-accent-hover: #E54A28;--brycks-accent-active: #C13A1D;--brycks-accent-muted: #FFF5F3;--brycks-accent-soft-hover: #FFE8E3;--brycks-accent-foreground: #FFFFFF;--brycks-success-default: #059669;--brycks-success-hover: #047857;--brycks-success-muted: #ECFDF5;--brycks-success-soft-hover: #D1FAE5;--brycks-success-foreground: #FFFFFF;--brycks-success-on-muted: #047857;--brycks-warning-default: #F59E0B;--brycks-warning-hover: #D97706;--brycks-warning-muted: #FFFBEB;--brycks-warning-soft-hover: #FEF3C7;--brycks-warning-foreground: #1D1D1F;--brycks-warning-on-muted: #92400E;--brycks-error-default: #DC2626;--brycks-error-hover: #B91C1C;--brycks-error-muted: #FEF2F2;--brycks-error-soft-hover: #FEE2E2;--brycks-error-foreground: #FFFFFF;--brycks-error-on-muted: #B91C1C;--brycks-info-default: #0891B2;--brycks-info-hover: #0E7490;--brycks-info-muted: #ECFEFF;--brycks-info-soft-hover: #CFFAFE;--brycks-info-foreground: #FFFFFF;--brycks-info-on-muted: #0E7490}[data-theme=dark]{--brycks-background-app: #000000;--brycks-background-subtle: #1D1D1F;--brycks-background-muted: #2C2C2E;--brycks-background-elevated: #1D1D1F;--brycks-background-overlay: rgba(0, 0, 0, .6);--brycks-background-inverse: #FFFFFF;--brycks-background-default: #1D1D1F;--brycks-foreground-default: #FFFFFF;--brycks-foreground-muted: #AEAEB2;--brycks-foreground-subtle: #8E8E93;--brycks-foreground-disabled: #636366;--brycks-foreground-inverse: #1D1D1F;--brycks-foreground-link: #7A9FFF;--brycks-border-default: #3A3A3C;--brycks-border-muted: #2C2C2E;--brycks-border-strong: #48484A;--brycks-border-focus: #7A9FFF;--brycks-primary-default: #5578F4;--brycks-primary-hover: #7A9FFF;--brycks-primary-active: #A4C1FF;--brycks-primary-muted: #1A2352;--brycks-primary-soft-hover: #283889;--brycks-primary-foreground: #FFFFFF;--brycks-accent-default: #FF8A71;--brycks-accent-hover: #FFB5A6;--brycks-accent-active: #FFD5CC;--brycks-accent-muted: #48140A;--brycks-accent-soft-hover: #842F1D;--brycks-accent-foreground: #000000;--brycks-success-default: #34D399;--brycks-success-hover: #6EE7B7;--brycks-success-muted: #022C22;--brycks-success-soft-hover: #064E3B;--brycks-success-foreground: #000000;--brycks-success-on-muted: #6EE7B7;--brycks-warning-default: #FBBF24;--brycks-warning-hover: #FCD34D;--brycks-warning-muted: #451A03;--brycks-warning-soft-hover: #78350F;--brycks-warning-foreground: #000000;--brycks-warning-on-muted: #FCD34D;--brycks-error-default: #F87171;--brycks-error-hover: #FCA5A5;--brycks-error-muted: #450A0A;--brycks-error-soft-hover: #7F1D1D;--brycks-error-foreground: #000000;--brycks-error-on-muted: #FCA5A5;--brycks-info-default: #22D3EE;--brycks-info-hover: #67E8F9;--brycks-info-muted: #083344;--brycks-info-soft-hover: #164E63;--brycks-info-foreground: #000000;--brycks-info-on-muted: #67E8F9}html{font-family:var(--brycks-font-sans);color-scheme:light dark}body{font-family:var(--brycks-font-sans);font-size:16px;line-height:1.5;color:var(--brycks-foreground-default);background-color:var(--brycks-background-app);transition:background-color var(--brycks-duration-normal) var(--brycks-ease-out),color var(--brycks-duration-normal) var(--brycks-ease-out)}::selection{background-color:var(--brycks-primary-muted);color:var(--brycks-foreground-default)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--brycks-border-default);border-radius:var(--brycks-radius-full);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:var(--brycks-border-strong)}*{scrollbar-width:thin;scrollbar-color:var(--brycks-border-default) transparent}code,kbd,pre,samp{font-family:var(--brycks-font-mono)}.brycks-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brycks-app-layout{display:flex;height:100vh;overflow:hidden;background-color:var(--brycks-background-subtle)}.brycks-app-layout__main{flex:1;display:flex;flex-direction:column;overflow:hidden}.brycks-app-layout__content{flex:1;overflow:auto;padding:var(--brycks-spacing-6)}.brycks-sidebar{width:240px;height:100vh;background-color:var(--brycks-background-elevated);border-right:1px solid var(--brycks-border-muted);display:flex;flex-direction:column;flex-shrink:0;will-change:width;contain:layout style}.brycks-sidebar--collapsed{width:72px}.brycks-sidebar__logo{padding:var(--brycks-spacing-4) var(--brycks-spacing-5);display:flex;align-items:center;gap:var(--brycks-spacing-3)}.brycks-sidebar--collapsed .brycks-sidebar__logo{padding:var(--brycks-spacing-4) var(--brycks-spacing-3);justify-content:center}.brycks-sidebar__logo-icon{width:32px;height:32px;background-color:var(--brycks-primary-default);border-radius:var(--brycks-radius-md);display:flex;align-items:center;justify-content:center;color:var(--brycks-primary-foreground);font-weight:700;font-size:var(--brycks-font-size-sm);flex-shrink:0}.brycks-sidebar__logo-text{font-size:var(--brycks-font-size-lg);font-weight:600;color:var(--brycks-foreground-default)}.brycks-sidebar__nav{flex:1;padding:var(--brycks-spacing-2) var(--brycks-spacing-3);overflow-y:auto}.brycks-sidebar--collapsed .brycks-sidebar__nav{padding:var(--brycks-spacing-2)}.brycks-sidebar__footer{padding:var(--brycks-spacing-3);text-align:center}.brycks-sidebar--collapsed .brycks-sidebar__footer{padding:var(--brycks-spacing-3) var(--brycks-spacing-2)}.brycks-nav-item{display:flex;align-items:center;gap:var(--brycks-spacing-3);padding:var(--brycks-spacing-2-5) var(--brycks-spacing-3);border-radius:var(--brycks-radius-md);cursor:pointer;background-color:transparent;color:var(--brycks-foreground-default);transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out);border:none;width:100%;text-align:left;font-size:var(--brycks-font-size-sm)}.brycks-nav-item:hover{background-color:var(--brycks-background-muted)}.brycks-nav-item--active{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default)}.brycks-nav-item--active:hover{background-color:var(--brycks-primary-muted)}.brycks-sidebar--collapsed .brycks-nav-item{padding:var(--brycks-spacing-3);justify-content:center}.brycks-nav-item__icon{width:20px;height:20px;flex-shrink:0;color:var(--brycks-foreground-muted)}.brycks-nav-item--active .brycks-nav-item__icon{color:var(--brycks-primary-default)}.brycks-nav-item__label{font-weight:400}.brycks-nav-item--active .brycks-nav-item__label{font-weight:500}.brycks-header{height:64px;background-color:var(--brycks-background-elevated);border-bottom:1px solid var(--brycks-border-muted);display:flex;align-items:center;justify-content:space-between;padding:0 var(--brycks-spacing-5);flex-shrink:0}.brycks-header__left,.brycks-header__right{display:flex;align-items:center}.brycks-header__left{gap:var(--brycks-spacing-4)}.brycks-header__right{gap:var(--brycks-spacing-2)}.brycks-icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--brycks-radius-md);background-color:transparent;color:var(--brycks-foreground-muted);cursor:pointer;border:none;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-icon-btn:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-icon-btn:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}.brycks-avatar{width:36px;height:36px;border-radius:var(--brycks-radius-full);background-color:var(--brycks-primary-default);color:var(--brycks-primary-foreground);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--brycks-font-size-sm);cursor:pointer;transition:transform var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-avatar:hover{transform:scale(1.05)}.brycks-avatar--xs{width:24px;height:24px;font-size:10px}.brycks-avatar--sm{width:32px;height:32px;font-size:12px}.brycks-avatar--md{width:36px;height:36px;font-size:14px}.brycks-avatar--lg{width:40px;height:40px;font-size:16px}.brycks-avatar--xl{width:48px;height:48px;font-size:18px}.brycks-avatar--2xl{width:64px;height:64px;font-size:24px}.brycks-page-header{margin-bottom:var(--brycks-spacing-6)}.brycks-stat-card__icon{width:48px;height:48px;border-radius:var(--brycks-radius-lg);display:flex;align-items:center;justify-content:center}.brycks-stat-card__icon--default{background-color:color-mix(in srgb,var(--brycks-foreground-muted) 10%,transparent);color:var(--brycks-foreground-muted)}.brycks-stat-card__icon--primary{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default)}.brycks-stat-card__icon--success{background-color:var(--brycks-success-muted);color:var(--brycks-success-default)}.brycks-stat-card__icon--warning{background-color:var(--brycks-warning-muted);color:var(--brycks-warning-default)}.brycks-stat-card__icon--error{background-color:var(--brycks-error-muted);color:var(--brycks-error-default)}.brycks-stat-card__trend{display:inline-flex;align-items:center;gap:var(--brycks-spacing-1);font-size:var(--brycks-font-size-xs);font-weight:500}.brycks-stat-card__trend--positive{color:var(--brycks-success-default)}.brycks-stat-card__trend--negative{color:var(--brycks-error-default)}.brycks-quick-action{padding:var(--brycks-spacing-4);border-radius:var(--brycks-radius-lg);background-color:var(--brycks-background-muted);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out);text-align:center;border:none;width:100%}.brycks-quick-action:hover{background-color:var(--brycks-primary-muted)}.brycks-quick-action:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}.brycks-quick-action__icon{color:var(--brycks-foreground-muted);margin-bottom:var(--brycks-spacing-2)}.brycks-quick-action:hover .brycks-quick-action__icon{color:var(--brycks-primary-default)}.brycks-search-input{position:relative;min-width:240px}.brycks-search-input__icon{position:absolute;left:var(--brycks-spacing-3);top:50%;transform:translateY(-50%);pointer-events:none;z-index:1;color:var(--brycks-foreground-muted);width:16px;height:16px}.brycks-search-input input{padding-left:36px}.brycks-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--brycks-spacing-6);background-color:var(--brycks-background-subtle)}.brycks-login-card{width:100%;max-width:400px}.brycks-login-logo{display:flex;align-items:center;justify-content:center;margin-bottom:var(--brycks-spacing-8)}.brycks-login-logo__icon{width:64px;height:64px;background-color:var(--brycks-primary-default);border-radius:var(--brycks-radius-xl);display:flex;align-items:center;justify-content:center;color:var(--brycks-primary-foreground);font-weight:700;font-size:28px}.brycks-login-footer{margin-top:var(--brycks-spacing-6);text-align:center}.brycks-user-info{padding:var(--brycks-spacing-2) var(--brycks-spacing-3)}.brycks-link{color:var(--brycks-primary-default);text-decoration:none;font-size:var(--brycks-font-size-sm);cursor:pointer;transition:color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-link:hover{color:var(--brycks-primary-hover);text-decoration:underline}.brycks-login-form__options{display:flex;justify-content:space-between;align-items:center}.brycks-dropdown-item__content{display:flex;align-items:center;gap:var(--brycks-spacing-2)}.brycks-vehicle-card{cursor:pointer;transition:transform var(--brycks-duration-fast) var(--brycks-ease-out),box-shadow var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-vehicle-card:hover{transform:translateY(-2px);box-shadow:var(--brycks-shadow-lg)}.brycks-vehicle-card__image{width:100%;aspect-ratio:16/10;background-color:var(--brycks-background-muted);border-radius:var(--brycks-radius-md);display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);margin-bottom:var(--brycks-spacing-3)}.brycks-vehicle-card__price{color:var(--brycks-primary-default)}.brycks-filter-select{min-width:160px}.brycks-page-card{cursor:pointer;transition:border-color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-page-card:hover{border-color:var(--brycks-primary-default)}.brycks-page-card__content{cursor:pointer}.brycks-page-card__icon{width:48px;height:48px;border-radius:var(--brycks-radius-lg);background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);display:flex;align-items:center;justify-content:center;flex-shrink:0}.brycks-section-item{padding:var(--brycks-spacing-3);background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-muted);border-radius:var(--brycks-radius-md);cursor:grab;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),border-color var(--brycks-duration-fast) var(--brycks-ease-out),opacity var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-section-item:active{cursor:grabbing}.brycks-section-item--dragging{opacity:.5;background-color:var(--brycks-background-muted)}.brycks-section-item--drag-over{background-color:var(--brycks-primary-muted);border-color:var(--brycks-primary-default)}.brycks-section-item__grip{cursor:grab;color:var(--brycks-foreground-muted)}.brycks-section-item__icon{width:40px;height:40px;border-radius:var(--brycks-radius-md);background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--brycks-font-size-base);flex-shrink:0}.brycks-section-type-btn{padding:var(--brycks-spacing-4);background-color:var(--brycks-background-muted);border:1px solid var(--brycks-border-muted);border-radius:var(--brycks-radius-md);cursor:pointer;text-align:center;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),border-color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-section-type-btn:hover{background-color:var(--brycks-primary-muted);border-color:var(--brycks-primary-default)}.brycks-empty-zone{padding:var(--brycks-spacing-10);border:2px dashed var(--brycks-border-muted);border-radius:var(--brycks-radius-lg);display:flex;justify-content:center;align-items:center}.brycks-info-item{display:flex;flex-direction:column;gap:var(--brycks-spacing-1)}.brycks-image-container{width:100%;aspect-ratio:16/9;background-color:var(--brycks-background-muted);border-radius:var(--brycks-radius-lg);display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted)}.brycks-table-action-btn{padding:var(--brycks-spacing-1)!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brycks-skip-link{position:absolute;top:-40px;left:0;background:var(--brycks-primary-default);color:var(--brycks-primary-foreground);padding:var(--brycks-spacing-2) var(--brycks-spacing-4);z-index:var(--brycks-z-tooltip);text-decoration:none;font-weight:500}.brycks-skip-link:focus{top:0}*:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes brycks-fade-in{0%{opacity:0}to{opacity:1}}@keyframes brycks-fade-out{0%{opacity:1}to{opacity:0}}@keyframes brycks-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes brycks-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes brycks-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-slide-left{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes brycks-slide-right{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes brycks-drawer-slide-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes brycks-drawer-slide-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes brycks-drawer-slide-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes brycks-drawer-slide-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes brycks-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes brycks-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes brycks-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes brycks-bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes brycks-bounce-scale{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}@keyframes brycks-pulse-scale{0%,to{transform:scale(.8);opacity:.5}50%{transform:scale(1);opacity:1}}@keyframes brycks-focus-ring-pulse{0%,to{box-shadow:0 0 0 3px #5578f459}50%{box-shadow:0 0 0 4px #5578f440}}@keyframes brycks-toast-slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes brycks-toast-slide-in-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes brycks-toast-slide-in-top{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-toast-slide-in-bottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-accordion-expand{0%{height:0;opacity:0}to{height:var(--brycks-accordion-content-height);opacity:1}}@keyframes brycks-accordion-collapse{0%{height:var(--brycks-accordion-content-height);opacity:1}to{height:0;opacity:0}}@keyframes brycks-progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}.brycks-animate-fade-in{animation:brycks-fade-in var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-animate-scale-in{animation:brycks-scale-in var(--brycks-duration-normal) var(--brycks-ease-spring)}.brycks-animate-slide-up{animation:brycks-slide-up var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-animate-spin{animation:brycks-spin 1s linear infinite}.brycks-animate-pulse{animation:brycks-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.brycks-animate-shimmer{animation:brycks-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--brycks-background-muted) 0%,var(--brycks-background-subtle) 50%,var(--brycks-background-muted) 100%);background-size:200% 100%}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.brycks-animate-spin{animation-duration:.5s!important}.brycks-animate-pulse,.brycks-animate-shimmer,.brycks-animate-bounce{animation:none!important}.brycks-skeleton{animation:none!important;background:var(--brycks-background-muted)!important}}:root{--brycks-anim-duration-instant: 50ms;--brycks-anim-duration-fast: .1s;--brycks-anim-duration-normal: .2s;--brycks-anim-duration-slow: .3s;--brycks-anim-duration-slower: .4s;--brycks-anim-ease-linear: linear;--brycks-anim-ease-out: cubic-bezier(0, 0, .2, 1);--brycks-anim-ease-in: cubic-bezier(.4, 0, 1, 1);--brycks-anim-ease-in-out: cubic-bezier(.4, 0, .2, 1);--brycks-anim-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--brycks-anim-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55)}
|
|
1
|
+
*,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}*{margin:0;padding:0}html,body{height:100%}body{min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}h1,h2,h3,h4,h5,h6{text-wrap:balance}p{text-wrap:pretty}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--brycks-border-focus, #5578f4);outline-offset:2px}:focus:not(:focus-visible){outline:none}button{background:none;border:none;cursor:pointer}a{text-decoration:none}table{border-collapse:collapse;border-spacing:0}[hidden]{display:none!important}[disabled]{cursor:not-allowed}:root{--brycks-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--brycks-font-mono: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--brycks-font-scale-body: 1;--brycks-font-scale-headings: 1;--brycks-font-scale-ui: 1;--brycks-fs-base-xs: 11px;--brycks-fs-base-sm: 12px;--brycks-fs-base-base: 14px;--brycks-fs-base-md: 16px;--brycks-fs-base-lg: 18px;--brycks-fs-base-xl: 20px;--brycks-fs-base-2xl: 24px;--brycks-fs-base-3xl: 28px;--brycks-fs-base-4xl: 32px;--brycks-fs-base-5xl: 40px;--brycks-fs-base-6xl: 48px;--brycks-fs-base-7xl: 60px;--brycks-fs-base-8xl: 72px;--brycks-fs-base-9xl: 96px;--brycks-fs-body-xs: calc(var(--brycks-fs-base-xs) * var(--brycks-font-scale-body));--brycks-fs-body-sm: calc(var(--brycks-fs-base-sm) * var(--brycks-font-scale-body));--brycks-fs-body-base: calc(var(--brycks-fs-base-base) * var(--brycks-font-scale-body));--brycks-fs-body-md: calc(var(--brycks-fs-base-md) * var(--brycks-font-scale-body));--brycks-fs-body-lg: calc(var(--brycks-fs-base-lg) * var(--brycks-font-scale-body));--brycks-fs-h6: calc(var(--brycks-fs-base-xl) * var(--brycks-font-scale-headings));--brycks-fs-h5: calc(var(--brycks-fs-base-2xl) * var(--brycks-font-scale-headings));--brycks-fs-h4: calc(var(--brycks-fs-base-3xl) * var(--brycks-font-scale-headings));--brycks-fs-h3: calc(var(--brycks-fs-base-4xl) * var(--brycks-font-scale-headings));--brycks-fs-h2: calc(var(--brycks-fs-base-5xl) * var(--brycks-font-scale-headings));--brycks-fs-h1: calc(var(--brycks-fs-base-6xl) * var(--brycks-font-scale-headings));--brycks-fs-display-sm: calc(var(--brycks-fs-base-7xl) * var(--brycks-font-scale-headings));--brycks-fs-display-md: calc(var(--brycks-fs-base-8xl) * var(--brycks-font-scale-headings));--brycks-fs-display-lg: calc(var(--brycks-fs-base-9xl) * var(--brycks-font-scale-headings));--brycks-fs-ui-xs: calc(var(--brycks-fs-base-xs) * var(--brycks-font-scale-ui));--brycks-fs-ui-sm: calc(var(--brycks-fs-base-sm) * var(--brycks-font-scale-ui));--brycks-fs-ui-md: calc(var(--brycks-fs-base-base) * var(--brycks-font-scale-ui));--brycks-fs-ui-lg: calc(15px * var(--brycks-font-scale-ui));--brycks-fs-ui-xl: calc(var(--brycks-fs-base-md) * var(--brycks-font-scale-ui));--brycks-font-size-xs: var(--brycks-fs-body-sm);--brycks-font-size-sm: var(--brycks-fs-body-base);--brycks-font-size-md: var(--brycks-fs-body-md);--brycks-font-size-lg: var(--brycks-fs-body-lg);--brycks-font-size-xl: var(--brycks-fs-h6);--brycks-font-size-2xl: var(--brycks-fs-h5);--brycks-font-size-3xl: var(--brycks-fs-h4);--brycks-font-size-4xl: var(--brycks-fs-h3);--brycks-space-0: 0;--brycks-space-px: 1px;--brycks-space-0-5: 2px;--brycks-space-1: 4px;--brycks-space-1-5: 6px;--brycks-space-2: 8px;--brycks-space-2-5: 10px;--brycks-space-3: 12px;--brycks-space-3-5: 14px;--brycks-space-4: 16px;--brycks-space-5: 20px;--brycks-space-6: 24px;--brycks-space-7: 28px;--brycks-space-8: 32px;--brycks-space-9: 36px;--brycks-space-10: 40px;--brycks-space-12: 48px;--brycks-space-14: 56px;--brycks-space-16: 64px;--brycks-space-20: 80px;--brycks-space-24: 96px;--brycks-spacing-1: var(--brycks-space-1);--brycks-spacing-2: var(--brycks-space-2);--brycks-spacing-2-5: var(--brycks-space-2-5);--brycks-spacing-3: var(--brycks-space-3);--brycks-spacing-4: var(--brycks-space-4);--brycks-spacing-5: var(--brycks-space-5);--brycks-spacing-6: var(--brycks-space-6);--brycks-spacing-8: var(--brycks-space-8);--brycks-radius-none: 0;--brycks-radius-xs: 2px;--brycks-radius-sm: 4px;--brycks-radius-md: 6px;--brycks-radius-default: 8px;--brycks-radius-lg: 10px;--brycks-radius-xl: 12px;--brycks-radius-2xl: 16px;--brycks-radius-3xl: 20px;--brycks-radius-4xl: 24px;--brycks-radius-full: 9999px;--brycks-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .03), 0 1px 3px 0 rgba(0, 0, 0, .06);--brycks-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .04), 0 2px 6px 0 rgba(0, 0, 0, .06), 0 0 1px 0 rgba(0, 0, 0, .04);--brycks-shadow-md: 0 2px 4px -1px rgba(0, 0, 0, .04), 0 4px 8px -1px rgba(0, 0, 0, .06), 0 8px 16px -2px rgba(0, 0, 0, .06);--brycks-shadow-lg: 0 4px 6px -2px rgba(0, 0, 0, .03), 0 8px 16px -4px rgba(0, 0, 0, .08), 0 16px 32px -8px rgba(0, 0, 0, .08);--brycks-shadow-xl: 0 8px 16px -4px rgba(0, 0, 0, .04), 0 16px 32px -8px rgba(0, 0, 0, .08), 0 32px 64px -16px rgba(0, 0, 0, .12);--brycks-shadow-2xl: 0 12px 24px -6px rgba(0, 0, 0, .05), 0 24px 48px -12px rgba(0, 0, 0, .1), 0 48px 96px -24px rgba(0, 0, 0, .15);--brycks-z-base: 0;--brycks-z-docked: 10;--brycks-z-dropdown: 1000;--brycks-z-sticky: 1100;--brycks-z-banner: 1200;--brycks-z-overlay: 1300;--brycks-z-modal: 1400;--brycks-z-popover: 1500;--brycks-z-toast: 1700;--brycks-z-tooltip: 1800;--brycks-duration-fast: .1s;--brycks-duration-normal: .2s;--brycks-duration-slow: .4s;--brycks-ease-out: cubic-bezier(0, 0, .2, 1);--brycks-ease-in-out: cubic-bezier(.4, 0, .2, 1);--brycks-ease-spring: cubic-bezier(.34, 1.56, .64, 1)}:root,[data-theme=light]{--brycks-background-app: #FFFFFF;--brycks-background-subtle: #FAFAFA;--brycks-background-muted: #F5F5F7;--brycks-background-elevated: #FFFFFF;--brycks-background-overlay: rgba(0, 0, 0, .4);--brycks-background-inverse: #1D1D1F;--brycks-background-default: #FAFAFA;--brycks-foreground-default: #1D1D1F;--brycks-foreground-muted: #636366;--brycks-foreground-subtle: #8E8E93;--brycks-foreground-disabled: #AEAEB2;--brycks-foreground-inverse: #FFFFFF;--brycks-foreground-link: #3B5CE9;--brycks-border-default: #E8E8ED;--brycks-border-muted: #F5F5F7;--brycks-border-strong: #D2D2D7;--brycks-border-focus: #5578F4;--brycks-primary-default: #3B5CE9;--brycks-primary-hover: #2D47D6;--brycks-primary-active: #2A3CAD;--brycks-primary-muted: #EEF4FF;--brycks-primary-soft-hover: #E0EBFF;--brycks-primary-foreground: #FFFFFF;--brycks-accent-default: #F86545;--brycks-accent-hover: #E54A28;--brycks-accent-active: #C13A1D;--brycks-accent-muted: #FFF5F3;--brycks-accent-soft-hover: #FFE8E3;--brycks-accent-foreground: #FFFFFF;--brycks-success-default: #059669;--brycks-success-hover: #047857;--brycks-success-muted: #ECFDF5;--brycks-success-soft-hover: #D1FAE5;--brycks-success-foreground: #FFFFFF;--brycks-success-on-muted: #047857;--brycks-warning-default: #F59E0B;--brycks-warning-hover: #D97706;--brycks-warning-muted: #FFFBEB;--brycks-warning-soft-hover: #FEF3C7;--brycks-warning-foreground: #1D1D1F;--brycks-warning-on-muted: #92400E;--brycks-error-default: #DC2626;--brycks-error-hover: #B91C1C;--brycks-error-muted: #FEF2F2;--brycks-error-soft-hover: #FEE2E2;--brycks-error-foreground: #FFFFFF;--brycks-error-on-muted: #B91C1C;--brycks-info-default: #0891B2;--brycks-info-hover: #0E7490;--brycks-info-muted: #ECFEFF;--brycks-info-soft-hover: #CFFAFE;--brycks-info-foreground: #FFFFFF;--brycks-info-on-muted: #0E7490}[data-theme=dark]{--brycks-background-app: #000000;--brycks-background-subtle: #1D1D1F;--brycks-background-muted: #2C2C2E;--brycks-background-elevated: #1D1D1F;--brycks-background-overlay: rgba(0, 0, 0, .6);--brycks-background-inverse: #FFFFFF;--brycks-background-default: #1D1D1F;--brycks-foreground-default: #FFFFFF;--brycks-foreground-muted: #AEAEB2;--brycks-foreground-subtle: #8E8E93;--brycks-foreground-disabled: #636366;--brycks-foreground-inverse: #1D1D1F;--brycks-foreground-link: #7A9FFF;--brycks-border-default: #3A3A3C;--brycks-border-muted: #2C2C2E;--brycks-border-strong: #48484A;--brycks-border-focus: #7A9FFF;--brycks-primary-default: #5578F4;--brycks-primary-hover: #7A9FFF;--brycks-primary-active: #A4C1FF;--brycks-primary-muted: #1A2352;--brycks-primary-soft-hover: #283889;--brycks-primary-foreground: #FFFFFF;--brycks-accent-default: #FF8A71;--brycks-accent-hover: #FFB5A6;--brycks-accent-active: #FFD5CC;--brycks-accent-muted: #48140A;--brycks-accent-soft-hover: #842F1D;--brycks-accent-foreground: #000000;--brycks-success-default: #34D399;--brycks-success-hover: #6EE7B7;--brycks-success-muted: #022C22;--brycks-success-soft-hover: #064E3B;--brycks-success-foreground: #000000;--brycks-success-on-muted: #6EE7B7;--brycks-warning-default: #FBBF24;--brycks-warning-hover: #FCD34D;--brycks-warning-muted: #451A03;--brycks-warning-soft-hover: #78350F;--brycks-warning-foreground: #000000;--brycks-warning-on-muted: #FCD34D;--brycks-error-default: #F87171;--brycks-error-hover: #FCA5A5;--brycks-error-muted: #450A0A;--brycks-error-soft-hover: #7F1D1D;--brycks-error-foreground: #000000;--brycks-error-on-muted: #FCA5A5;--brycks-info-default: #22D3EE;--brycks-info-hover: #67E8F9;--brycks-info-muted: #083344;--brycks-info-soft-hover: #164E63;--brycks-info-foreground: #000000;--brycks-info-on-muted: #67E8F9}html{font-family:var(--brycks-font-sans);color-scheme:light dark}body{font-family:var(--brycks-font-sans);font-size:16px;line-height:1.5;color:var(--brycks-foreground-default);background-color:var(--brycks-background-app);transition:background-color var(--brycks-duration-normal) var(--brycks-ease-out),color var(--brycks-duration-normal) var(--brycks-ease-out)}::selection{background-color:var(--brycks-primary-muted);color:var(--brycks-foreground-default)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--brycks-border-default);border-radius:var(--brycks-radius-full);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:var(--brycks-border-strong)}*{scrollbar-width:thin;scrollbar-color:var(--brycks-border-default) transparent}code,kbd,pre,samp{font-family:var(--brycks-font-mono)}.brycks-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brycks-app-layout{display:flex;height:100vh;overflow:hidden;background-color:var(--brycks-background-subtle)}.brycks-app-layout__main{flex:1;display:flex;flex-direction:column;overflow:hidden}.brycks-app-layout__content{flex:1;overflow:auto;padding:var(--brycks-spacing-6)}.brycks-sidebar{width:240px;height:100vh;background-color:var(--brycks-background-elevated);border-right:1px solid var(--brycks-border-muted);display:flex;flex-direction:column;flex-shrink:0;will-change:width;contain:layout style}.brycks-sidebar--collapsed{width:72px}.brycks-sidebar__logo{padding:var(--brycks-spacing-4) var(--brycks-spacing-5);display:flex;align-items:center;gap:var(--brycks-spacing-3)}.brycks-sidebar--collapsed .brycks-sidebar__logo{padding:var(--brycks-spacing-4) var(--brycks-spacing-3);justify-content:center}.brycks-sidebar__logo-icon{width:32px;height:32px;background-color:var(--brycks-primary-default);border-radius:var(--brycks-radius-md);display:flex;align-items:center;justify-content:center;color:var(--brycks-primary-foreground);font-weight:700;font-size:var(--brycks-font-size-sm);flex-shrink:0}.brycks-sidebar__logo-text{font-size:var(--brycks-font-size-lg);font-weight:600;color:var(--brycks-foreground-default)}.brycks-sidebar__nav{flex:1;padding:var(--brycks-spacing-2) var(--brycks-spacing-3);overflow-y:auto}.brycks-sidebar--collapsed .brycks-sidebar__nav{padding:var(--brycks-spacing-2)}.brycks-sidebar__footer{padding:var(--brycks-spacing-3);text-align:center}.brycks-sidebar--collapsed .brycks-sidebar__footer{padding:var(--brycks-spacing-3) var(--brycks-spacing-2)}.brycks-nav-item{display:flex;align-items:center;gap:var(--brycks-spacing-3);padding:var(--brycks-spacing-2-5) var(--brycks-spacing-3);border-radius:var(--brycks-radius-md);cursor:pointer;background-color:transparent;color:var(--brycks-foreground-default);transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out);border:none;width:100%;text-align:left;font-size:var(--brycks-font-size-sm)}.brycks-nav-item:hover{background-color:var(--brycks-background-muted)}.brycks-nav-item--active{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default)}.brycks-nav-item--active:hover{background-color:var(--brycks-primary-muted)}.brycks-sidebar--collapsed .brycks-nav-item{padding:var(--brycks-spacing-3);justify-content:center}.brycks-nav-item__icon{width:20px;height:20px;flex-shrink:0;color:var(--brycks-foreground-muted)}.brycks-nav-item--active .brycks-nav-item__icon{color:var(--brycks-primary-default)}.brycks-nav-item__label{font-weight:400}.brycks-nav-item--active .brycks-nav-item__label{font-weight:500}.brycks-header{height:64px;background-color:var(--brycks-background-elevated);border-bottom:1px solid var(--brycks-border-muted);display:flex;align-items:center;justify-content:space-between;padding:0 var(--brycks-spacing-5);flex-shrink:0}.brycks-header__left,.brycks-header__right{display:flex;align-items:center}.brycks-header__left{gap:var(--brycks-spacing-4)}.brycks-header__right{gap:var(--brycks-spacing-2)}.brycks-icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--brycks-radius-md);background-color:transparent;color:var(--brycks-foreground-muted);cursor:pointer;border:none;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-icon-btn:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-icon-btn:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}.brycks-avatar{width:36px;height:36px;border-radius:var(--brycks-radius-full);background-color:var(--brycks-primary-default);color:var(--brycks-primary-foreground);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--brycks-font-size-sm);cursor:pointer;transition:transform var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-avatar:hover{transform:scale(1.05)}.brycks-avatar--xs{width:24px;height:24px;font-size:10px}.brycks-avatar--sm{width:32px;height:32px;font-size:12px}.brycks-avatar--md{width:36px;height:36px;font-size:14px}.brycks-avatar--lg{width:40px;height:40px;font-size:16px}.brycks-avatar--xl{width:48px;height:48px;font-size:18px}.brycks-avatar--2xl{width:64px;height:64px;font-size:24px}.brycks-page-header{margin-bottom:var(--brycks-spacing-6)}.brycks-stat-card__icon{width:48px;height:48px;border-radius:var(--brycks-radius-lg);display:flex;align-items:center;justify-content:center}.brycks-stat-card__icon--default{background-color:color-mix(in srgb,var(--brycks-foreground-muted) 10%,transparent);color:var(--brycks-foreground-muted)}.brycks-stat-card__icon--primary{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default)}.brycks-stat-card__icon--success{background-color:var(--brycks-success-muted);color:var(--brycks-success-default)}.brycks-stat-card__icon--warning{background-color:var(--brycks-warning-muted);color:var(--brycks-warning-default)}.brycks-stat-card__icon--error{background-color:var(--brycks-error-muted);color:var(--brycks-error-default)}.brycks-stat-card__trend{display:inline-flex;align-items:center;gap:var(--brycks-spacing-1);font-size:var(--brycks-font-size-xs);font-weight:500}.brycks-stat-card__trend--positive{color:var(--brycks-success-default)}.brycks-stat-card__trend--negative{color:var(--brycks-error-default)}.brycks-quick-action{padding:var(--brycks-spacing-4);border-radius:var(--brycks-radius-lg);background-color:var(--brycks-background-muted);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out);text-align:center;border:none;width:100%}.brycks-quick-action:hover{background-color:var(--brycks-primary-muted)}.brycks-quick-action:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}.brycks-quick-action__icon{color:var(--brycks-foreground-muted);margin-bottom:var(--brycks-spacing-2)}.brycks-quick-action:hover .brycks-quick-action__icon{color:var(--brycks-primary-default)}.brycks-search-input{position:relative;min-width:240px}.brycks-search-input__icon{position:absolute;left:var(--brycks-spacing-3);top:50%;transform:translateY(-50%);pointer-events:none;z-index:1;color:var(--brycks-foreground-muted);width:16px;height:16px}.brycks-search-input input{padding-left:36px}.brycks-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--brycks-spacing-6);background-color:var(--brycks-background-subtle)}.brycks-login-card{width:100%;max-width:400px}.brycks-login-logo{display:flex;align-items:center;justify-content:center;margin-bottom:var(--brycks-spacing-8)}.brycks-login-logo__icon{width:64px;height:64px;background-color:var(--brycks-primary-default);border-radius:var(--brycks-radius-xl);display:flex;align-items:center;justify-content:center;color:var(--brycks-primary-foreground);font-weight:700;font-size:28px}.brycks-login-footer{margin-top:var(--brycks-spacing-6);text-align:center}.brycks-user-info{padding:var(--brycks-spacing-2) var(--brycks-spacing-3)}.brycks-link{color:var(--brycks-primary-default);text-decoration:none;font-size:var(--brycks-font-size-sm);cursor:pointer;transition:color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-link:hover{color:var(--brycks-primary-hover);text-decoration:underline}.brycks-login-form__options{display:flex;justify-content:space-between;align-items:center}.brycks-dropdown-item__content{display:flex;align-items:center;gap:var(--brycks-spacing-2)}.brycks-vehicle-card{cursor:pointer;transition:transform var(--brycks-duration-fast) var(--brycks-ease-out),box-shadow var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-vehicle-card:hover{transform:translateY(-2px);box-shadow:var(--brycks-shadow-lg)}.brycks-vehicle-card__image{width:100%;aspect-ratio:16/10;background-color:var(--brycks-background-muted);border-radius:var(--brycks-radius-md);display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);margin-bottom:var(--brycks-spacing-3)}.brycks-vehicle-card__price{color:var(--brycks-primary-default)}.brycks-filter-select{min-width:160px}.brycks-page-card{cursor:pointer;transition:border-color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-page-card:hover{border-color:var(--brycks-primary-default)}.brycks-page-card__content{cursor:pointer}.brycks-page-card__icon{width:48px;height:48px;border-radius:var(--brycks-radius-lg);background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);display:flex;align-items:center;justify-content:center;flex-shrink:0}.brycks-section-item{padding:var(--brycks-spacing-3);background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-muted);border-radius:var(--brycks-radius-md);cursor:grab;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),border-color var(--brycks-duration-fast) var(--brycks-ease-out),opacity var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-section-item:active{cursor:grabbing}.brycks-section-item--dragging{opacity:.5;background-color:var(--brycks-background-muted)}.brycks-section-item--drag-over{background-color:var(--brycks-primary-muted);border-color:var(--brycks-primary-default)}.brycks-section-item__grip{cursor:grab;color:var(--brycks-foreground-muted)}.brycks-section-item__icon{width:40px;height:40px;border-radius:var(--brycks-radius-md);background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--brycks-font-size-base);flex-shrink:0}.brycks-section-type-btn{padding:var(--brycks-spacing-4);background-color:var(--brycks-background-muted);border:1px solid var(--brycks-border-muted);border-radius:var(--brycks-radius-md);cursor:pointer;text-align:center;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),border-color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-section-type-btn:hover{background-color:var(--brycks-primary-muted);border-color:var(--brycks-primary-default)}.brycks-empty-zone{padding:var(--brycks-spacing-10);border:2px dashed var(--brycks-border-muted);border-radius:var(--brycks-radius-lg);display:flex;justify-content:center;align-items:center}.brycks-info-item{display:flex;flex-direction:column;gap:var(--brycks-spacing-1)}.brycks-image-container{width:100%;aspect-ratio:16/9;background-color:var(--brycks-background-muted);border-radius:var(--brycks-radius-lg);display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted)}.brycks-table-action-btn{padding:var(--brycks-spacing-1)!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brycks-skip-link{position:absolute;top:-40px;left:0;background:var(--brycks-primary-default);color:var(--brycks-primary-foreground);padding:var(--brycks-spacing-2) var(--brycks-spacing-4);z-index:var(--brycks-z-tooltip);text-decoration:none;font-weight:500}.brycks-skip-link:focus{top:0}*:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes brycks-fade-in{0%{opacity:0}to{opacity:1}}@keyframes brycks-fade-out{0%{opacity:1}to{opacity:0}}@keyframes brycks-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes brycks-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes brycks-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-slide-left{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes brycks-slide-right{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes brycks-drawer-slide-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes brycks-drawer-slide-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes brycks-drawer-slide-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes brycks-drawer-slide-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes brycks-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes brycks-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes brycks-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes brycks-bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes brycks-bounce-scale{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}@keyframes brycks-pulse-scale{0%,to{transform:scale(.8);opacity:.5}50%{transform:scale(1);opacity:1}}@keyframes brycks-focus-ring-pulse{0%,to{box-shadow:0 0 0 3px #5578f459}50%{box-shadow:0 0 0 4px #5578f440}}@keyframes brycks-toast-slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes brycks-toast-slide-in-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes brycks-toast-slide-in-top{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-toast-slide-in-bottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-accordion-expand{0%{height:0;opacity:0}to{height:var(--brycks-accordion-content-height);opacity:1}}@keyframes brycks-accordion-collapse{0%{height:var(--brycks-accordion-content-height);opacity:1}to{height:0;opacity:0}}@keyframes brycks-progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}.brycks-animate-fade-in{animation:brycks-fade-in var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-animate-scale-in{animation:brycks-scale-in var(--brycks-duration-normal) var(--brycks-ease-spring)}.brycks-animate-slide-up{animation:brycks-slide-up var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-animate-spin{animation:brycks-spin 1s linear infinite}.brycks-animate-pulse{animation:brycks-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.brycks-animate-shimmer{animation:brycks-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--brycks-background-muted) 0%,var(--brycks-background-subtle) 50%,var(--brycks-background-muted) 100%);background-size:200% 100%}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.brycks-animate-spin{animation-duration:.5s!important}.brycks-animate-pulse,.brycks-animate-shimmer,.brycks-animate-bounce{animation:none!important}.brycks-skeleton{animation:none!important;background:var(--brycks-background-muted)!important}}:root{--brycks-anim-duration-instant: 50ms;--brycks-anim-duration-fast: .1s;--brycks-anim-duration-normal: .2s;--brycks-anim-duration-slow: .3s;--brycks-anim-duration-slower: .4s;--brycks-anim-ease-linear: linear;--brycks-anim-ease-out: cubic-bezier(0, 0, .2, 1);--brycks-anim-ease-in: cubic-bezier(.4, 0, 1, 1);--brycks-anim-ease-in-out: cubic-bezier(.4, 0, .2, 1);--brycks-anim-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--brycks-anim-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55)}
|