@cytario/design 1.6.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +583 -58
- package/dist/index.js +2145 -32
- package/dist/index.js.map +1 -0
- package/package.json +7 -5
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +0 -11
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +0 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js +0 -9
- package/dist/components/Breadcrumbs/index.d.ts +0 -3
- package/dist/components/Breadcrumbs/index.d.ts.map +0 -1
- package/dist/components/Breadcrumbs/index.js +0 -1
- package/dist/components/Button/Button.d.ts +0 -18
- package/dist/components/Button/Button.d.ts.map +0 -1
- package/dist/components/Button/Button.js +0 -51
- package/dist/components/Button/index.d.ts +0 -3
- package/dist/components/Button/index.d.ts.map +0 -1
- package/dist/components/Button/index.js +0 -1
- package/dist/components/ButtonLink/ButtonLink.d.ts +0 -35
- package/dist/components/ButtonLink/ButtonLink.d.ts.map +0 -1
- package/dist/components/ButtonLink/ButtonLink.js +0 -47
- package/dist/components/ButtonLink/index.d.ts +0 -3
- package/dist/components/ButtonLink/index.d.ts.map +0 -1
- package/dist/components/ButtonLink/index.js +0 -1
- package/dist/components/Checkbox/Checkbox.d.ts +0 -8
- package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
- package/dist/components/Checkbox/Checkbox.js +0 -19
- package/dist/components/Checkbox/index.d.ts +0 -3
- package/dist/components/Checkbox/index.d.ts.map +0 -1
- package/dist/components/Checkbox/index.js +0 -1
- package/dist/components/Dialog/Dialog.d.ts +0 -11
- package/dist/components/Dialog/Dialog.d.ts.map +0 -1
- package/dist/components/Dialog/Dialog.js +0 -31
- package/dist/components/Dialog/index.d.ts +0 -3
- package/dist/components/Dialog/index.d.ts.map +0 -1
- package/dist/components/Dialog/index.js +0 -1
- package/dist/components/EmptyState/EmptyState.d.ts +0 -11
- package/dist/components/EmptyState/EmptyState.d.ts.map +0 -1
- package/dist/components/EmptyState/EmptyState.js +0 -10
- package/dist/components/EmptyState/index.d.ts +0 -3
- package/dist/components/EmptyState/index.d.ts.map +0 -1
- package/dist/components/EmptyState/index.js +0 -1
- package/dist/components/Field/Field.d.ts +0 -13
- package/dist/components/Field/Field.d.ts.map +0 -1
- package/dist/components/Field/Field.js +0 -15
- package/dist/components/Field/index.d.ts +0 -3
- package/dist/components/Field/index.d.ts.map +0 -1
- package/dist/components/Field/index.js +0 -1
- package/dist/components/Fieldset/Fieldset.d.ts +0 -8
- package/dist/components/Fieldset/Fieldset.d.ts.map +0 -1
- package/dist/components/Fieldset/Fieldset.js +0 -15
- package/dist/components/Fieldset/index.d.ts +0 -3
- package/dist/components/Fieldset/index.d.ts.map +0 -1
- package/dist/components/Fieldset/index.js +0 -1
- package/dist/components/Heading/Heading.d.ts +0 -19
- package/dist/components/Heading/Heading.d.ts.map +0 -1
- package/dist/components/Heading/Heading.js +0 -39
- package/dist/components/Heading/index.d.ts +0 -3
- package/dist/components/Heading/index.d.ts.map +0 -1
- package/dist/components/Heading/index.js +0 -1
- package/dist/components/Icon/Icon.d.ts +0 -15
- package/dist/components/Icon/Icon.d.ts.map +0 -1
- package/dist/components/Icon/Icon.js +0 -11
- package/dist/components/Icon/index.d.ts +0 -3
- package/dist/components/Icon/index.d.ts.map +0 -1
- package/dist/components/Icon/index.js +0 -1
- package/dist/components/IconButton/IconButton.d.ts +0 -23
- package/dist/components/IconButton/IconButton.d.ts.map +0 -1
- package/dist/components/IconButton/IconButton.js +0 -59
- package/dist/components/IconButton/index.d.ts +0 -3
- package/dist/components/IconButton/index.d.ts.map +0 -1
- package/dist/components/IconButton/index.js +0 -1
- package/dist/components/Input/Input.d.ts +0 -23
- package/dist/components/Input/Input.d.ts.map +0 -1
- package/dist/components/Input/Input.js +0 -97
- package/dist/components/Input/index.d.ts +0 -3
- package/dist/components/Input/index.d.ts.map +0 -1
- package/dist/components/Input/index.js +0 -1
- package/dist/components/InputAddon/InputAddon.d.ts +0 -7
- package/dist/components/InputAddon/InputAddon.d.ts.map +0 -1
- package/dist/components/InputAddon/InputAddon.js +0 -35
- package/dist/components/InputAddon/index.d.ts +0 -3
- package/dist/components/InputAddon/index.d.ts.map +0 -1
- package/dist/components/InputAddon/index.js +0 -1
- package/dist/components/InputGroup/InputGroup.d.ts +0 -7
- package/dist/components/InputGroup/InputGroup.d.ts.map +0 -1
- package/dist/components/InputGroup/InputGroup.js +0 -16
- package/dist/components/InputGroup/InputGroupContext.d.ts +0 -9
- package/dist/components/InputGroup/InputGroupContext.d.ts.map +0 -1
- package/dist/components/InputGroup/InputGroupContext.js +0 -8
- package/dist/components/InputGroup/index.d.ts +0 -5
- package/dist/components/InputGroup/index.d.ts.map +0 -1
- package/dist/components/InputGroup/index.js +0 -2
- package/dist/components/Label/Label.d.ts +0 -7
- package/dist/components/Label/Label.d.ts.map +0 -1
- package/dist/components/Label/Label.js +0 -12
- package/dist/components/Label/index.d.ts +0 -3
- package/dist/components/Label/index.d.ts.map +0 -1
- package/dist/components/Label/index.js +0 -1
- package/dist/components/Link/Link.d.ts +0 -10
- package/dist/components/Link/Link.d.ts.map +0 -1
- package/dist/components/Link/Link.js +0 -22
- package/dist/components/Link/index.d.ts +0 -3
- package/dist/components/Link/index.d.ts.map +0 -1
- package/dist/components/Link/index.js +0 -1
- package/dist/components/Menu/Menu.d.ts +0 -24
- package/dist/components/Menu/Menu.d.ts.map +0 -1
- package/dist/components/Menu/Menu.js +0 -29
- package/dist/components/Menu/index.d.ts +0 -3
- package/dist/components/Menu/index.d.ts.map +0 -1
- package/dist/components/Menu/index.js +0 -1
- package/dist/components/Popover/Popover.d.ts +0 -44
- package/dist/components/Popover/Popover.d.ts.map +0 -1
- package/dist/components/Popover/Popover.js +0 -46
- package/dist/components/Popover/index.d.ts +0 -3
- package/dist/components/Popover/index.d.ts.map +0 -1
- package/dist/components/Popover/index.js +0 -1
- package/dist/components/Radio/Radio.d.ts +0 -18
- package/dist/components/Radio/Radio.d.ts.map +0 -1
- package/dist/components/Radio/Radio.js +0 -43
- package/dist/components/Radio/index.d.ts +0 -3
- package/dist/components/Radio/index.d.ts.map +0 -1
- package/dist/components/Radio/index.js +0 -1
- package/dist/components/Select/Select.d.ts +0 -17
- package/dist/components/Select/Select.d.ts.map +0 -1
- package/dist/components/Select/Select.js +0 -42
- package/dist/components/Select/index.d.ts +0 -3
- package/dist/components/Select/index.d.ts.map +0 -1
- package/dist/components/Select/index.js +0 -1
- package/dist/components/Spinner/Spinner.d.ts +0 -10
- package/dist/components/Spinner/Spinner.d.ts.map +0 -1
- package/dist/components/Spinner/Spinner.js +0 -12
- package/dist/components/Spinner/index.d.ts +0 -3
- package/dist/components/Spinner/index.d.ts.map +0 -1
- package/dist/components/Spinner/index.js +0 -1
- package/dist/components/Switch/Switch.d.ts +0 -12
- package/dist/components/Switch/Switch.d.ts.map +0 -1
- package/dist/components/Switch/Switch.js +0 -34
- package/dist/components/Switch/index.d.ts +0 -3
- package/dist/components/Switch/index.d.ts.map +0 -1
- package/dist/components/Switch/index.js +0 -1
- package/dist/components/Table/Table.d.ts +0 -13
- package/dist/components/Table/Table.d.ts.map +0 -1
- package/dist/components/Table/Table.js +0 -61
- package/dist/components/Table/index.d.ts +0 -3
- package/dist/components/Table/index.d.ts.map +0 -1
- package/dist/components/Table/index.js +0 -1
- package/dist/components/Tabs/Tabs.d.ts +0 -32
- package/dist/components/Tabs/Tabs.d.ts.map +0 -1
- package/dist/components/Tabs/Tabs.js +0 -100
- package/dist/components/Tabs/index.d.ts +0 -3
- package/dist/components/Tabs/index.d.ts.map +0 -1
- package/dist/components/Tabs/index.js +0 -1
- package/dist/components/Toast/Toast.d.ts +0 -33
- package/dist/components/Toast/Toast.d.ts.map +0 -1
- package/dist/components/Toast/Toast.js +0 -102
- package/dist/components/Toast/index.d.ts +0 -3
- package/dist/components/Toast/index.d.ts.map +0 -1
- package/dist/components/Toast/index.js +0 -1
- package/dist/components/ToggleButton/ToggleButton.d.ts +0 -13
- package/dist/components/ToggleButton/ToggleButton.d.ts.map +0 -1
- package/dist/components/ToggleButton/ToggleButton.js +0 -42
- package/dist/components/ToggleButton/index.d.ts +0 -3
- package/dist/components/ToggleButton/index.d.ts.map +0 -1
- package/dist/components/ToggleButton/index.js +0 -1
- package/dist/components/Tooltip/Tooltip.d.ts +0 -15
- package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
- package/dist/components/Tooltip/Tooltip.js +0 -20
- package/dist/components/Tooltip/index.d.ts +0 -3
- package/dist/components/Tooltip/index.d.ts.map +0 -1
- package/dist/components/Tooltip/index.js +0 -1
- package/dist/components/_shared/styles.d.ts +0 -5
- package/dist/components/_shared/styles.d.ts.map +0 -1
- package/dist/components/_shared/styles.js +0 -43
- package/dist/index.d.ts.map +0 -1
- package/dist/test-setup.d.ts +0 -2
- package/dist/test-setup.d.ts.map +0 -1
- package/dist/test-setup.js +0 -1
- package/dist/tokens/tokens.d.ts +0 -144
- package/dist/tokens/tokens.d.ts.map +0 -1
- package/dist/tokens/tokens.js +0 -143
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Checkbox as AriaCheckbox, } from "react-aria-components";
|
|
3
|
-
import { Check } from "lucide-react";
|
|
4
|
-
export function Checkbox({ children, className, ...props }) {
|
|
5
|
-
return (_jsx(AriaCheckbox, { ...props, className: [
|
|
6
|
-
"group flex items-center gap-2 text-[length:var(--font-size-sm)] text-[var(--color-text-primary)] cursor-pointer",
|
|
7
|
-
"disabled:opacity-50 disabled:cursor-default",
|
|
8
|
-
className,
|
|
9
|
-
]
|
|
10
|
-
.filter(Boolean)
|
|
11
|
-
.join(" "), children: ({ isSelected, isIndeterminate }) => (_jsxs(_Fragment, { children: [_jsxs("div", { className: [
|
|
12
|
-
"flex items-center justify-center w-6 h-6 shrink-0",
|
|
13
|
-
"rounded-[var(--border-radius-sm)] border transition-colors",
|
|
14
|
-
"group-focus-visible:ring-2 group-focus-visible:ring-[var(--color-border-focus)] group-focus-visible:ring-offset-2",
|
|
15
|
-
isSelected || isIndeterminate
|
|
16
|
-
? "bg-[var(--color-action-primary)] border-[var(--color-action-primary)]"
|
|
17
|
-
: "bg-[var(--color-surface-default)] border-[var(--color-border-default)] group-hover:border-[var(--color-border-strong)]",
|
|
18
|
-
].join(" "), children: [isSelected && (_jsx(Check, { className: "w-4 h-4 text-[var(--color-text-inverse)]", strokeWidth: 3 })), isIndeterminate && (_jsx("div", { className: "w-3 h-0.5 bg-[var(--color-text-inverse)] rounded-full" }))] }), children && _jsx("span", { children: children })] })) }));
|
|
19
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Checkbox } from "./Checkbox";
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type React from "react";
|
|
2
|
-
export interface DialogProps {
|
|
3
|
-
isOpen: boolean;
|
|
4
|
-
onOpenChange: (isOpen: boolean) => void;
|
|
5
|
-
title: string;
|
|
6
|
-
size?: "sm" | "md" | "lg" | "xl";
|
|
7
|
-
children: React.ReactNode;
|
|
8
|
-
className?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function Dialog({ isOpen, onOpenChange, title, size, children, className, }: DialogProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
//# sourceMappingURL=Dialog.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/Dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,YAAY,EACZ,KAAK,EACL,IAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,WAAW,2CAwDb"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Modal, ModalOverlay, Dialog as AriaDialog, Heading, } from "react-aria-components";
|
|
3
|
-
import { X } from "lucide-react";
|
|
4
|
-
const sizeStyles = {
|
|
5
|
-
sm: "max-w-md",
|
|
6
|
-
md: "max-w-lg",
|
|
7
|
-
lg: "max-w-2xl",
|
|
8
|
-
xl: "max-w-4xl",
|
|
9
|
-
};
|
|
10
|
-
export function Dialog({ isOpen, onOpenChange, title, size = "md", children, className, }) {
|
|
11
|
-
return (_jsx(ModalOverlay, { isOpen: isOpen, onOpenChange: onOpenChange, isDismissable: true, className: [
|
|
12
|
-
"fixed inset-0 z-50 bg-[var(--color-overlay-backdrop)] backdrop-blur-sm",
|
|
13
|
-
"flex items-center justify-center",
|
|
14
|
-
"data-[entering]:animate-in data-[entering]:fade-in",
|
|
15
|
-
"data-[exiting]:animate-out data-[exiting]:fade-out",
|
|
16
|
-
].join(" "), children: _jsx(Modal, { className: [
|
|
17
|
-
"w-full mx-4",
|
|
18
|
-
sizeStyles[size],
|
|
19
|
-
"bg-[var(--color-surface-default)] rounded-lg shadow-xl max-h-[85vh] flex flex-col",
|
|
20
|
-
"data-[entering]:animate-in data-[entering]:zoom-in-95 data-[entering]:fade-in",
|
|
21
|
-
"data-[exiting]:animate-out data-[exiting]:zoom-out-95 data-[exiting]:fade-out",
|
|
22
|
-
className,
|
|
23
|
-
]
|
|
24
|
-
.filter(Boolean)
|
|
25
|
-
.join(" "), children: _jsx(AriaDialog, { className: "outline-none flex flex-col max-h-[85vh]", children: ({ close }) => (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between px-6 py-4 border-b border-[var(--color-border-default)]", children: [_jsx(Heading, { slot: "title", className: "text-lg font-semibold text-[var(--color-text-primary)]", children: title }), _jsx("button", { type: "button", onClick: close, className: [
|
|
26
|
-
"inline-flex items-center justify-center rounded-md p-1",
|
|
27
|
-
"text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] hover:bg-[var(--color-surface-muted)]",
|
|
28
|
-
"outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-border-focus)] focus-visible:ring-offset-2",
|
|
29
|
-
"transition-colors",
|
|
30
|
-
].join(" "), "aria-label": "Close", children: _jsx(X, { size: 20, "aria-hidden": "true" }) })] }), _jsx("div", { className: "px-6 py-4 overflow-y-auto", children: children })] })) }) }) }));
|
|
31
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Dialog } from "./Dialog";
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type React from "react";
|
|
2
|
-
import type { LucideIcon } from "lucide-react";
|
|
3
|
-
export interface EmptyStateProps {
|
|
4
|
-
icon?: LucideIcon;
|
|
5
|
-
title: string;
|
|
6
|
-
description?: string;
|
|
7
|
-
action?: React.ReactNode;
|
|
8
|
-
className?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function EmptyState({ icon, title, description, action, className, }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
//# sourceMappingURL=EmptyState.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/components/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,MAAM,EACN,SAAS,GACV,EAAE,eAAe,2CAwBjB"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Icon } from "../Icon";
|
|
3
|
-
export function EmptyState({ icon, title, description, action, className, }) {
|
|
4
|
-
return (_jsxs("div", { className: [
|
|
5
|
-
"flex flex-col items-center text-center py-12 px-6",
|
|
6
|
-
className,
|
|
7
|
-
]
|
|
8
|
-
.filter(Boolean)
|
|
9
|
-
.join(" "), children: [icon && (_jsx(Icon, { icon: icon, size: "xl", className: "text-[var(--color-text-tertiary)]" })), _jsx("h3", { className: "text-lg font-semibold text-[var(--color-text-primary)] mt-4", children: title }), description && (_jsx("p", { className: "text-sm text-[var(--color-text-secondary)] mt-2 max-w-sm", children: description })), action && _jsx("div", { className: "mt-6", children: action })] }));
|
|
10
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/EmptyState/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { EmptyState } from "./EmptyState";
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type React from "react";
|
|
2
|
-
export interface FieldProps {
|
|
3
|
-
label?: string;
|
|
4
|
-
isRequired?: boolean;
|
|
5
|
-
description?: string;
|
|
6
|
-
error?: string | {
|
|
7
|
-
message?: string;
|
|
8
|
-
};
|
|
9
|
-
children: React.ReactNode;
|
|
10
|
-
className?: string;
|
|
11
|
-
}
|
|
12
|
-
export declare function Field({ label, isRequired, description, error, children, className, }: FieldProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
//# sourceMappingURL=Field.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/components/Field/Field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,UAAU,2CAuBZ"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Label } from "../Label";
|
|
3
|
-
function getErrorMessage(error) {
|
|
4
|
-
if (!error)
|
|
5
|
-
return undefined;
|
|
6
|
-
if (typeof error === "string")
|
|
7
|
-
return error;
|
|
8
|
-
return error.message;
|
|
9
|
-
}
|
|
10
|
-
export function Field({ label, isRequired, description, error, children, className, }) {
|
|
11
|
-
const errorMessage = getErrorMessage(error);
|
|
12
|
-
return (_jsxs("div", { className: ["flex flex-col gap-[var(--spacing-1)]", className]
|
|
13
|
-
.filter(Boolean)
|
|
14
|
-
.join(" "), children: [label && _jsx(Label, { isRequired: isRequired, children: label }), children, description && !errorMessage && (_jsx("p", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)]", children: description })), errorMessage && (_jsx("p", { className: "text-[length:var(--font-size-sm)] text-[var(--color-text-danger)]", children: errorMessage }))] }));
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Field/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Field } from "./Field";
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type React from "react";
|
|
2
|
-
export interface FieldsetProps {
|
|
3
|
-
legend?: string;
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
className?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare function Fieldset({ legend, children, className }: FieldsetProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
//# sourceMappingURL=Fieldset.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Fieldset.d.ts","sourceRoot":"","sources":["../../../src/components/Fieldset/Fieldset.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,aAAa,2CA0BtE"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export function Fieldset({ legend, children, className }) {
|
|
3
|
-
return (_jsxs("fieldset", { className: [
|
|
4
|
-
"flex flex-col gap-[var(--spacing-8)]",
|
|
5
|
-
"border-none p-0 m-0",
|
|
6
|
-
className,
|
|
7
|
-
]
|
|
8
|
-
.filter(Boolean)
|
|
9
|
-
.join(" "), children: [legend && (_jsx("legend", { className: [
|
|
10
|
-
"text-[length:var(--font-size-lg)]",
|
|
11
|
-
"font-[number:var(--font-weight-semibold)]",
|
|
12
|
-
"text-[var(--color-text-primary)]",
|
|
13
|
-
"p-0",
|
|
14
|
-
].join(" "), children: legend })), children] }));
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Fieldset/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Fieldset } from "./Fieldset";
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type React from "react";
|
|
2
|
-
export type HeadingLevel = "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
3
|
-
export type HeadingSize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
|
|
4
|
-
export interface HeadingProps {
|
|
5
|
-
/** HTML heading element to render */
|
|
6
|
-
as?: HeadingLevel;
|
|
7
|
-
/** Visual size (defaults to match the `as` level) */
|
|
8
|
-
size?: HeadingSize;
|
|
9
|
-
children: React.ReactNode;
|
|
10
|
-
className?: string;
|
|
11
|
-
}
|
|
12
|
-
export declare function Heading({ as: Tag, size, className, children, }: HeadingProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
/** Convenience: renders `<h1>` at 2xl size */
|
|
14
|
-
export declare function H1(props: Omit<HeadingProps, "as">): import("react/jsx-runtime").JSX.Element;
|
|
15
|
-
/** Convenience: renders `<h2>` at xl size */
|
|
16
|
-
export declare function H2(props: Omit<HeadingProps, "as">): import("react/jsx-runtime").JSX.Element;
|
|
17
|
-
/** Convenience: renders `<h3>` at lg size */
|
|
18
|
-
export declare function H3(props: Omit<HeadingProps, "as">): import("react/jsx-runtime").JSX.Element;
|
|
19
|
-
//# sourceMappingURL=Heading.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Heading.d.ts","sourceRoot":"","sources":["../../../src/components/Heading/Heading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,qDAAqD;IACrD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAgB,OAAO,CAAC,EACtB,EAAE,EAAE,GAAU,EACd,IAAI,EACJ,SAAS,EACT,QAAQ,GACT,EAAE,YAAY,2CAgBd;AAED,8CAA8C;AAC9C,wBAAgB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,2CAEjD;AAED,6CAA6C;AAC7C,wBAAgB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,2CAEjD;AAED,6CAA6C;AAC7C,wBAAgB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,2CAEjD"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
const defaultSizeMap = {
|
|
3
|
-
h1: "2xl",
|
|
4
|
-
h2: "xl",
|
|
5
|
-
h3: "lg",
|
|
6
|
-
h4: "md",
|
|
7
|
-
h5: "sm",
|
|
8
|
-
h6: "xs",
|
|
9
|
-
};
|
|
10
|
-
const sizeStyles = {
|
|
11
|
-
xs: "text-sm",
|
|
12
|
-
sm: "text-base",
|
|
13
|
-
md: "text-lg",
|
|
14
|
-
lg: "text-xl",
|
|
15
|
-
xl: "text-2xl",
|
|
16
|
-
"2xl": "text-3xl",
|
|
17
|
-
};
|
|
18
|
-
export function Heading({ as: Tag = "h2", size, className, children, }) {
|
|
19
|
-
const resolvedSize = size ?? defaultSizeMap[Tag];
|
|
20
|
-
return (_jsx(Tag, { className: [
|
|
21
|
-
"font-semibold text-[var(--color-text-primary)]",
|
|
22
|
-
sizeStyles[resolvedSize],
|
|
23
|
-
className,
|
|
24
|
-
]
|
|
25
|
-
.filter(Boolean)
|
|
26
|
-
.join(" "), children: children }));
|
|
27
|
-
}
|
|
28
|
-
/** Convenience: renders `<h1>` at 2xl size */
|
|
29
|
-
export function H1(props) {
|
|
30
|
-
return _jsx(Heading, { ...props, as: "h1", size: props.size ?? "2xl" });
|
|
31
|
-
}
|
|
32
|
-
/** Convenience: renders `<h2>` at xl size */
|
|
33
|
-
export function H2(props) {
|
|
34
|
-
return _jsx(Heading, { ...props, as: "h2", size: props.size ?? "xl" });
|
|
35
|
-
}
|
|
36
|
-
/** Convenience: renders `<h3>` at lg size */
|
|
37
|
-
export function H3(props) {
|
|
38
|
-
return _jsx(Heading, { ...props, as: "h3", size: props.size ?? "lg" });
|
|
39
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Heading/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Heading, H1, H2, H3 } from "./Heading";
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { LucideIcon } from "lucide-react";
|
|
2
|
-
export interface IconProps {
|
|
3
|
-
/** A Lucide icon component */
|
|
4
|
-
icon: LucideIcon;
|
|
5
|
-
/** Size preset */
|
|
6
|
-
size?: "sm" | "md" | "lg" | "xl";
|
|
7
|
-
/** SVG stroke width */
|
|
8
|
-
strokeWidth?: number;
|
|
9
|
-
/** Accessible label — when provided, the icon is treated as meaningful */
|
|
10
|
-
"aria-label"?: string;
|
|
11
|
-
/** Additional CSS classes */
|
|
12
|
-
className?: string;
|
|
13
|
-
}
|
|
14
|
-
export declare function Icon({ icon: LucideComponent, size, strokeWidth, "aria-label": ariaLabel, className, }: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
-
//# sourceMappingURL=Icon.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../src/components/Icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,SAAS;IACxB,8BAA8B;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,kBAAkB;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,IAAI,CAAC,EACnB,IAAI,EAAE,eAAe,EACrB,IAAW,EACX,WAAW,EACX,YAAY,EAAE,SAAS,EACvB,SAAS,GACV,EAAE,SAAS,2CAaX"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
const sizeMap = {
|
|
3
|
-
sm: 16,
|
|
4
|
-
md: 20,
|
|
5
|
-
lg: 24,
|
|
6
|
-
xl: 32,
|
|
7
|
-
};
|
|
8
|
-
export function Icon({ icon: LucideComponent, size = "md", strokeWidth, "aria-label": ariaLabel, className, }) {
|
|
9
|
-
const isDecorative = !ariaLabel;
|
|
10
|
-
return (_jsx(LucideComponent, { size: sizeMap[size], strokeWidth: strokeWidth, role: isDecorative ? undefined : "img", "aria-label": ariaLabel, "aria-hidden": isDecorative ? "true" : undefined, className: className }));
|
|
11
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Icon } from "./Icon";
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { LucideIcon } from "lucide-react";
|
|
2
|
-
import { type ButtonProps as AriaButtonProps } from "react-aria-components";
|
|
3
|
-
import { type ButtonVariant } from "../_shared/styles";
|
|
4
|
-
export interface IconButtonProps extends Omit<AriaButtonProps, "className"> {
|
|
5
|
-
/** Lucide icon to render */
|
|
6
|
-
icon: LucideIcon;
|
|
7
|
-
/** Required for accessibility — also used as tooltip content */
|
|
8
|
-
"aria-label": string;
|
|
9
|
-
/** Visual style variant */
|
|
10
|
-
variant?: ButtonVariant;
|
|
11
|
-
/** Size preset */
|
|
12
|
-
size?: "sm" | "md" | "lg";
|
|
13
|
-
/** Show tooltip on hover (default true) */
|
|
14
|
-
showTooltip?: boolean;
|
|
15
|
-
/** Tooltip placement */
|
|
16
|
-
tooltipPlacement?: "top" | "bottom" | "left" | "right";
|
|
17
|
-
/** Shows a spinner and disables interaction */
|
|
18
|
-
isLoading?: boolean;
|
|
19
|
-
/** Additional CSS classes */
|
|
20
|
-
className?: string;
|
|
21
|
-
}
|
|
22
|
-
export declare function IconButton({ icon, "aria-label": ariaLabel, variant, size, showTooltip, tooltipPlacement, isLoading, isDisabled, className, ...props }: IconButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
//# sourceMappingURL=IconButton.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../src/components/IconButton/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAEL,KAAK,WAAW,IAAI,eAAe,EACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,mBAAmB,CAAC;AAMtE,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC;IACzE,4BAA4B;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,kBAAkB;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACvD,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6BD,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,YAAY,EAAE,SAAS,EACvB,OAAiB,EACjB,IAAW,EACX,WAAkB,EAClB,gBAAwB,EACxB,SAAiB,EACjB,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,2CAqDjB"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Button as AriaButton, } from "react-aria-components";
|
|
3
|
-
import { variantStyles } from "../_shared/styles";
|
|
4
|
-
import { Icon } from "../Icon";
|
|
5
|
-
import { Spinner } from "../Spinner";
|
|
6
|
-
import { Tooltip } from "../Tooltip";
|
|
7
|
-
import { useInputGroup } from "../InputGroup/InputGroupContext";
|
|
8
|
-
const squareSizeStyles = {
|
|
9
|
-
sm: "h-8 w-8",
|
|
10
|
-
md: "h-10 w-10",
|
|
11
|
-
lg: "h-12 w-12",
|
|
12
|
-
};
|
|
13
|
-
const iconSizeMap = {
|
|
14
|
-
sm: "sm",
|
|
15
|
-
md: "sm",
|
|
16
|
-
lg: "md",
|
|
17
|
-
};
|
|
18
|
-
function groupRadiusClass(position) {
|
|
19
|
-
switch (position) {
|
|
20
|
-
case "start":
|
|
21
|
-
return "rounded-l-[var(--border-radius-md)] rounded-r-none";
|
|
22
|
-
case "middle":
|
|
23
|
-
return "rounded-none";
|
|
24
|
-
case "end":
|
|
25
|
-
return "rounded-r-[var(--border-radius-md)] rounded-l-none";
|
|
26
|
-
default:
|
|
27
|
-
return "rounded-[var(--border-radius-md)]";
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export function IconButton({ icon, "aria-label": ariaLabel, variant = "ghost", size = "md", showTooltip = true, tooltipPlacement = "top", isLoading = false, isDisabled, className, ...props }) {
|
|
31
|
-
const { inGroup, position } = useInputGroup();
|
|
32
|
-
const radiusClass = inGroup
|
|
33
|
-
? groupRadiusClass(position)
|
|
34
|
-
: "rounded-[var(--border-radius-md)]";
|
|
35
|
-
const marginClass = inGroup && position !== "start" && position !== "standalone"
|
|
36
|
-
? "-ml-px"
|
|
37
|
-
: "";
|
|
38
|
-
const focusRing = inGroup
|
|
39
|
-
? "focus-visible:ring-2 focus-visible:ring-[var(--color-border-focus)] focus-visible:ring-offset-0 focus-visible:z-10"
|
|
40
|
-
: "focus-visible:ring-2 focus-visible:ring-[var(--color-border-focus)] focus-visible:ring-offset-2";
|
|
41
|
-
const button = (_jsx(AriaButton, { ...props, "aria-label": ariaLabel, isDisabled: isDisabled || isLoading, className: [
|
|
42
|
-
"inline-flex items-center justify-center shrink-0",
|
|
43
|
-
radiusClass,
|
|
44
|
-
"outline-none transition-colors",
|
|
45
|
-
focusRing,
|
|
46
|
-
"disabled:opacity-50 disabled:pointer-events-none",
|
|
47
|
-
isLoading ? "pointer-events-none" : "",
|
|
48
|
-
variantStyles[variant],
|
|
49
|
-
squareSizeStyles[size],
|
|
50
|
-
marginClass,
|
|
51
|
-
className,
|
|
52
|
-
]
|
|
53
|
-
.filter(Boolean)
|
|
54
|
-
.join(" "), children: isLoading ? (_jsx(Spinner, { size: iconSizeMap[size] })) : (_jsx(Icon, { icon: icon, size: iconSizeMap[size] })) }));
|
|
55
|
-
if (showTooltip) {
|
|
56
|
-
return (_jsx(Tooltip, { content: ariaLabel, placement: tooltipPlacement, children: button }));
|
|
57
|
-
}
|
|
58
|
-
return button;
|
|
59
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/IconButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { IconButton } from "./IconButton";
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { type TextFieldProps } from "react-aria-components";
|
|
2
|
-
export interface InputProps extends Omit<TextFieldProps, "children" | "className"> {
|
|
3
|
-
/** Label text displayed above the input. Omit for raw input mode. */
|
|
4
|
-
label?: string;
|
|
5
|
-
/** Placeholder text shown when the input is empty */
|
|
6
|
-
placeholder?: string;
|
|
7
|
-
/** Help text shown below the input */
|
|
8
|
-
description?: string;
|
|
9
|
-
/** Error message shown below the input (triggers error styling) */
|
|
10
|
-
errorMessage?: string;
|
|
11
|
-
/** HTML input type */
|
|
12
|
-
type?: "text" | "email" | "password" | "number";
|
|
13
|
-
/** Controls padding and font size */
|
|
14
|
-
size?: "sm" | "md" | "lg";
|
|
15
|
-
/** Text prefix shown inside the input on the left (e.g., "$", "https://") */
|
|
16
|
-
prefix?: string;
|
|
17
|
-
/** Text alignment within the input */
|
|
18
|
-
align?: "left" | "center" | "right";
|
|
19
|
-
/** Additional CSS class for the outer wrapper */
|
|
20
|
-
className?: string;
|
|
21
|
-
}
|
|
22
|
-
export declare function Input({ label, placeholder, description, errorMessage, type, size, prefix, align, isDisabled, isRequired, className, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
//# sourceMappingURL=Input.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAqB/B,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,WAAW,CAAC;IACtD,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;IAChD,qCAAqC;IACrC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,IAAa,EACb,IAAW,EACX,MAAM,EACN,KAAc,EACd,UAAU,EACV,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,UAAU,2CAkIZ"}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { TextField, Label, Input as AriaInput, Text, } from "react-aria-components";
|
|
3
|
-
import { useInputGroup } from "../InputGroup/InputGroupContext";
|
|
4
|
-
const sizeClasses = {
|
|
5
|
-
sm: "px-3 py-1.5 text-sm",
|
|
6
|
-
md: "px-4 py-2 text-base",
|
|
7
|
-
lg: "px-4 py-3 text-lg",
|
|
8
|
-
};
|
|
9
|
-
const prefixSizeClasses = {
|
|
10
|
-
sm: "px-3 text-sm",
|
|
11
|
-
md: "px-3 text-base",
|
|
12
|
-
lg: "px-4 text-lg",
|
|
13
|
-
};
|
|
14
|
-
const alignClasses = {
|
|
15
|
-
left: "text-left",
|
|
16
|
-
center: "text-center",
|
|
17
|
-
right: "text-right",
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Returns Tailwind border-radius classes for the border-bearing element
|
|
21
|
-
* based on InputGroup position context.
|
|
22
|
-
*/
|
|
23
|
-
function groupRadiusClasses(position) {
|
|
24
|
-
switch (position) {
|
|
25
|
-
case "start":
|
|
26
|
-
return "rounded-l-[var(--border-radius-md)] rounded-r-none";
|
|
27
|
-
case "middle":
|
|
28
|
-
return "rounded-none";
|
|
29
|
-
case "end":
|
|
30
|
-
return "rounded-r-[var(--border-radius-md)] rounded-l-none";
|
|
31
|
-
default:
|
|
32
|
-
return "rounded-[var(--border-radius-md)]";
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
export function Input({ label, placeholder, description, errorMessage, type = "text", size = "md", prefix, align = "left", isDisabled, isRequired, className, ...props }) {
|
|
36
|
-
const isInvalid = !!errorMessage;
|
|
37
|
-
const { inGroup, position } = useInputGroup();
|
|
38
|
-
const borderColor = isInvalid
|
|
39
|
-
? "border-[var(--color-border-danger)]"
|
|
40
|
-
: "border-[var(--color-border-default)] hover:border-[var(--color-border-strong)]";
|
|
41
|
-
const radiusClass = inGroup
|
|
42
|
-
? groupRadiusClasses(position)
|
|
43
|
-
: "rounded-[var(--border-radius-md)]";
|
|
44
|
-
/** When not first in a group, overlap left border with previous sibling */
|
|
45
|
-
const marginClass = inGroup && position !== "start" && position !== "standalone" ? "-ml-px" : "";
|
|
46
|
-
return (_jsxs(TextField, { ...props, type: type, isDisabled: isDisabled, isRequired: isRequired, isInvalid: isInvalid, className: [
|
|
47
|
-
"flex flex-col gap-[var(--spacing-1)]",
|
|
48
|
-
inGroup ? "min-w-0 flex-1" : "",
|
|
49
|
-
marginClass,
|
|
50
|
-
className,
|
|
51
|
-
]
|
|
52
|
-
.filter(Boolean)
|
|
53
|
-
.join(" "), children: [label && (_jsxs(Label, { className: [
|
|
54
|
-
"text-[length:var(--font-size-sm)]",
|
|
55
|
-
"font-[number:var(--font-weight-medium)]",
|
|
56
|
-
"text-[var(--color-text-primary)]",
|
|
57
|
-
].join(" "), children: [label, isRequired && (_jsx("span", { "aria-hidden": "true", className: "ml-0.5 text-[var(--color-text-danger)]", children: "*" }))] })), prefix ? (_jsxs("div", { className: [
|
|
58
|
-
"flex items-center overflow-hidden",
|
|
59
|
-
radiusClass,
|
|
60
|
-
"border",
|
|
61
|
-
"bg-[var(--color-surface-default)]",
|
|
62
|
-
"outline-none transition-colors",
|
|
63
|
-
borderColor,
|
|
64
|
-
"focus-within:ring-2 focus-within:ring-[var(--color-border-focus)] focus-within:border-[var(--color-border-focus)]",
|
|
65
|
-
inGroup ? "focus-within:z-10" : "",
|
|
66
|
-
isDisabled ? "opacity-50 pointer-events-none" : "",
|
|
67
|
-
]
|
|
68
|
-
.filter(Boolean)
|
|
69
|
-
.join(" "), children: [_jsx("span", { className: [
|
|
70
|
-
"self-stretch flex items-center shrink-0 select-none",
|
|
71
|
-
"bg-[var(--color-surface-subtle)]",
|
|
72
|
-
"border-r border-r-[var(--color-border-default)]",
|
|
73
|
-
"text-[var(--color-text-secondary)]",
|
|
74
|
-
prefixSizeClasses[size],
|
|
75
|
-
].join(" "), children: prefix }), _jsx(AriaInput, { placeholder: placeholder, className: [
|
|
76
|
-
"w-full bg-transparent",
|
|
77
|
-
sizeClasses[size],
|
|
78
|
-
alignClasses[align],
|
|
79
|
-
"text-[var(--color-text-primary)]",
|
|
80
|
-
"placeholder:text-[var(--color-text-tertiary)]",
|
|
81
|
-
"outline-none border-none",
|
|
82
|
-
].join(" ") })] })) : (_jsx(AriaInput, { placeholder: placeholder, className: [
|
|
83
|
-
"w-full",
|
|
84
|
-
sizeClasses[size],
|
|
85
|
-
alignClasses[align],
|
|
86
|
-
radiusClass,
|
|
87
|
-
"border",
|
|
88
|
-
"text-[var(--color-text-primary)]",
|
|
89
|
-
"bg-[var(--color-surface-default)]",
|
|
90
|
-
"placeholder:text-[var(--color-text-tertiary)]",
|
|
91
|
-
"outline-none transition-colors",
|
|
92
|
-
borderColor,
|
|
93
|
-
"focus:ring-2 focus:ring-[var(--color-border-focus)] focus:border-[var(--color-border-focus)]",
|
|
94
|
-
inGroup ? "focus:z-10" : "",
|
|
95
|
-
"disabled:opacity-50 disabled:pointer-events-none",
|
|
96
|
-
].join(" ") })), description && !isInvalid && (_jsx(Text, { slot: "description", className: "text-[length:var(--font-size-sm)] text-[var(--color-text-secondary)]", children: description })), isInvalid && (_jsx(Text, { slot: "errorMessage", className: "text-[length:var(--font-size-sm)] text-[var(--color-text-danger)]", children: errorMessage }))] }));
|
|
97
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Input } from "./Input";
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type React from "react";
|
|
2
|
-
export interface InputAddonProps {
|
|
3
|
-
children: React.ReactNode;
|
|
4
|
-
className?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare function InputAddon({ children, className }: InputAddonProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
//# sourceMappingURL=InputAddon.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputAddon.d.ts","sourceRoot":"","sources":["../../../src/components/InputAddon/InputAddon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,2CA8BlE"}
|