@maxsteinwender/sort-ui 0.1.0 → 1.0.2
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/LICENSE +1 -0
- package/README.md +35 -0
- package/dist/fonts/Redaction/webfonts/Redaction-Bold.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction-Italic.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction-Regular.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_10-Bold.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_10-Italic.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_10-Regular.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_100-Bold.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_100-Italic.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_100-Regular.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_20-Bold.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_20-Italic.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_20-Regular.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_35-Bold.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_35-Italic.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_35-Regular.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_50-Bold.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_50-Italic.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_50-Regular.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_70-Bold.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_70-Italic.woff2 +0 -0
- package/dist/fonts/Redaction/webfonts/Redaction_70-Regular.woff2 +0 -0
- package/dist/fonts/remixicon/remixicon.woff2 +0 -0
- package/dist/form.d.mts +28 -0
- package/dist/form.d.ts +28 -0
- package/dist/form.js +203 -0
- package/dist/form.mjs +173 -0
- package/dist/index.d.mts +14 -25
- package/dist/index.d.ts +14 -25
- package/dist/index.js +537 -580
- package/dist/index.mjs +535 -572
- package/dist/styles.css +376 -277
- package/dist/tailwind-preset.js +5 -0
- package/dist/tailwind-preset.mjs +5 -0
- package/package.json +18 -10
package/LICENSE
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
This project uses design tokens from the Sort UI Kit. All code is proprietary.
|
package/README.md
CHANGED
|
@@ -2,6 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
A coded design system based on the [Sort UI Kit](https://sortui.company) — Figma components translated into production-ready Next.js components, documented in Storybook.
|
|
4
4
|
|
|
5
|
+
**npm package:** [`@maxsteinwender/sort-ui`](https://www.npmjs.com/package/@maxsteinwender/sort-ui)
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @maxsteinwender/sort-ui
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Usage:**
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
// 1. Import styles once in your app root (e.g. layout.tsx, _app.tsx, main.tsx)
|
|
17
|
+
import '@maxsteinwender/sort-ui/styles.css'
|
|
18
|
+
|
|
19
|
+
// 2. Import components
|
|
20
|
+
import { Button, Avatar, StatusBadge } from '@maxsteinwender/sort-ui'
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Next.js with Tailwind (optional):** extend your Tailwind config with Sort UI tokens:
|
|
24
|
+
|
|
25
|
+
```js
|
|
26
|
+
// tailwind.config.js
|
|
27
|
+
import sortUIPreset from '@maxsteinwender/sort-ui/tailwind-preset'
|
|
28
|
+
|
|
29
|
+
export default {
|
|
30
|
+
presets: [sortUIPreset],
|
|
31
|
+
content: [
|
|
32
|
+
'./src/**/*.{ts,tsx}',
|
|
33
|
+
'./node_modules/@maxsteinwender/sort-ui/dist/**/*.js',
|
|
34
|
+
],
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
5
40
|
## Overview
|
|
6
41
|
|
|
7
42
|
| | |
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/form.d.mts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as _radix_ui_react_slot from '@radix-ui/react-slot';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import * as react_hook_form from 'react-hook-form';
|
|
4
|
+
import { FieldValues, FieldPath, ControllerProps } from 'react-hook-form';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
7
|
+
|
|
8
|
+
declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: react_hook_form.FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
|
|
9
|
+
declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime.JSX.Element;
|
|
10
|
+
declare const useFormField: () => {
|
|
11
|
+
invalid: boolean;
|
|
12
|
+
isDirty: boolean;
|
|
13
|
+
isTouched: boolean;
|
|
14
|
+
isValidating: boolean;
|
|
15
|
+
error?: react_hook_form.FieldError;
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
formItemId: string;
|
|
19
|
+
formDescriptionId: string;
|
|
20
|
+
formMessageId: string;
|
|
21
|
+
};
|
|
22
|
+
declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
|
|
24
|
+
declare const FormControl: React.ForwardRefExoticComponent<Omit<_radix_ui_react_slot.SlotProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
25
|
+
declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
26
|
+
declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
27
|
+
|
|
28
|
+
export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
|
package/dist/form.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as _radix_ui_react_slot from '@radix-ui/react-slot';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import * as react_hook_form from 'react-hook-form';
|
|
4
|
+
import { FieldValues, FieldPath, ControllerProps } from 'react-hook-form';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
7
|
+
|
|
8
|
+
declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: react_hook_form.FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
|
|
9
|
+
declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime.JSX.Element;
|
|
10
|
+
declare const useFormField: () => {
|
|
11
|
+
invalid: boolean;
|
|
12
|
+
isDirty: boolean;
|
|
13
|
+
isTouched: boolean;
|
|
14
|
+
isValidating: boolean;
|
|
15
|
+
error?: react_hook_form.FieldError;
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
formItemId: string;
|
|
19
|
+
formDescriptionId: string;
|
|
20
|
+
formMessageId: string;
|
|
21
|
+
};
|
|
22
|
+
declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
|
|
24
|
+
declare const FormControl: React.ForwardRefExoticComponent<Omit<_radix_ui_react_slot.SlotProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
25
|
+
declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
26
|
+
declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
27
|
+
|
|
28
|
+
export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
|
package/dist/form.js
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var React2 = require('react');
|
|
5
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
6
|
+
var reactHookForm = require('react-hook-form');
|
|
7
|
+
var clsx = require('clsx');
|
|
8
|
+
var tailwindMerge = require('tailwind-merge');
|
|
9
|
+
var LabelPrimitive = require('@radix-ui/react-label');
|
|
10
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
11
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
12
|
+
|
|
13
|
+
function _interopNamespace(e) {
|
|
14
|
+
if (e && e.__esModule) return e;
|
|
15
|
+
var n = Object.create(null);
|
|
16
|
+
if (e) {
|
|
17
|
+
Object.keys(e).forEach(function (k) {
|
|
18
|
+
if (k !== 'default') {
|
|
19
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
20
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return e[k]; }
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
n.default = e;
|
|
28
|
+
return Object.freeze(n);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
|
|
32
|
+
var LabelPrimitive__namespace = /*#__PURE__*/_interopNamespace(LabelPrimitive);
|
|
33
|
+
|
|
34
|
+
var __defProp = Object.defineProperty;
|
|
35
|
+
var __defProps = Object.defineProperties;
|
|
36
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
37
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
38
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
39
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
40
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
41
|
+
var __spreadValues = (a, b) => {
|
|
42
|
+
for (var prop in b || (b = {}))
|
|
43
|
+
if (__hasOwnProp.call(b, prop))
|
|
44
|
+
__defNormalProp(a, prop, b[prop]);
|
|
45
|
+
if (__getOwnPropSymbols)
|
|
46
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
47
|
+
if (__propIsEnum.call(b, prop))
|
|
48
|
+
__defNormalProp(a, prop, b[prop]);
|
|
49
|
+
}
|
|
50
|
+
return a;
|
|
51
|
+
};
|
|
52
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
53
|
+
var __objRest = (source, exclude) => {
|
|
54
|
+
var target = {};
|
|
55
|
+
for (var prop in source)
|
|
56
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
57
|
+
target[prop] = source[prop];
|
|
58
|
+
if (source != null && __getOwnPropSymbols)
|
|
59
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
60
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
61
|
+
target[prop] = source[prop];
|
|
62
|
+
}
|
|
63
|
+
return target;
|
|
64
|
+
};
|
|
65
|
+
function cn(...inputs) {
|
|
66
|
+
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
67
|
+
}
|
|
68
|
+
var labelVariants = classVarianceAuthority.cva(
|
|
69
|
+
"text-sm font-medium leading-5 text-sui-text-default"
|
|
70
|
+
);
|
|
71
|
+
var Label = React2__namespace.forwardRef((_a, ref) => {
|
|
72
|
+
var _b = _a, { className, required, supportText, tailIcon, children } = _b, props = __objRest(_b, ["className", "required", "supportText", "tailIcon", "children"]);
|
|
73
|
+
const hasTail = !!(supportText || tailIcon);
|
|
74
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
75
|
+
LabelPrimitive__namespace.Root,
|
|
76
|
+
__spreadProps(__spreadValues({
|
|
77
|
+
ref,
|
|
78
|
+
className: cn(
|
|
79
|
+
// peer-disabled must be on the outer label — it's the direct sibling of the peer input
|
|
80
|
+
"inline-flex items-center peer-disabled:cursor-not-allowed peer-disabled:text-sui-text-hint",
|
|
81
|
+
hasTail ? "w-full justify-between" : "gap-1",
|
|
82
|
+
className
|
|
83
|
+
)
|
|
84
|
+
}, props), {
|
|
85
|
+
children: [
|
|
86
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn(labelVariants(), "flex items-center gap-1"), children: [
|
|
87
|
+
children,
|
|
88
|
+
required && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
89
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-sm font-semibold leading-5 text-sui-text-destructive", children: "*" }),
|
|
90
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "(required)" })
|
|
91
|
+
] })
|
|
92
|
+
] }),
|
|
93
|
+
hasTail && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1", children: [
|
|
94
|
+
supportText && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-normal leading-5 text-sui-text-muted", children: supportText }),
|
|
95
|
+
tailIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "size-5 flex items-center justify-center", children: tailIcon })
|
|
96
|
+
] })
|
|
97
|
+
]
|
|
98
|
+
})
|
|
99
|
+
);
|
|
100
|
+
});
|
|
101
|
+
Label.displayName = LabelPrimitive__namespace.Root.displayName;
|
|
102
|
+
var Form = reactHookForm.FormProvider;
|
|
103
|
+
var FormFieldContext = React2__namespace.createContext(null);
|
|
104
|
+
var FormField = (_a) => {
|
|
105
|
+
var props = __objRest(_a, []);
|
|
106
|
+
return /* @__PURE__ */ jsxRuntime.jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsxRuntime.jsx(reactHookForm.Controller, __spreadValues({}, props)) });
|
|
107
|
+
};
|
|
108
|
+
var useFormField = () => {
|
|
109
|
+
const fieldContext = React2__namespace.useContext(FormFieldContext);
|
|
110
|
+
const itemContext = React2__namespace.useContext(FormItemContext);
|
|
111
|
+
const { getFieldState, formState } = reactHookForm.useFormContext();
|
|
112
|
+
if (!fieldContext) {
|
|
113
|
+
throw new Error("useFormField should be used within <FormField>");
|
|
114
|
+
}
|
|
115
|
+
if (!itemContext) {
|
|
116
|
+
throw new Error("useFormField should be used within <FormItem>");
|
|
117
|
+
}
|
|
118
|
+
const fieldState = getFieldState(fieldContext.name, formState);
|
|
119
|
+
const { id } = itemContext;
|
|
120
|
+
return __spreadValues({
|
|
121
|
+
id,
|
|
122
|
+
name: fieldContext.name,
|
|
123
|
+
formItemId: `${id}-form-item`,
|
|
124
|
+
formDescriptionId: `${id}-form-item-description`,
|
|
125
|
+
formMessageId: `${id}-form-item-message`
|
|
126
|
+
}, fieldState);
|
|
127
|
+
};
|
|
128
|
+
var FormItemContext = React2__namespace.createContext(null);
|
|
129
|
+
var FormItem = React2__namespace.forwardRef((_a, ref) => {
|
|
130
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
131
|
+
const id = React2__namespace.useId();
|
|
132
|
+
return /* @__PURE__ */ jsxRuntime.jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsxRuntime.jsx("div", __spreadValues({ ref, className: cn("space-y-2", className) }, props)) });
|
|
133
|
+
});
|
|
134
|
+
FormItem.displayName = "FormItem";
|
|
135
|
+
var FormLabel = React2__namespace.forwardRef((_a, ref) => {
|
|
136
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
137
|
+
const { error, formItemId } = useFormField();
|
|
138
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
139
|
+
Label,
|
|
140
|
+
__spreadValues({
|
|
141
|
+
ref,
|
|
142
|
+
className: cn(error && "text-destructive", className),
|
|
143
|
+
htmlFor: formItemId
|
|
144
|
+
}, props)
|
|
145
|
+
);
|
|
146
|
+
});
|
|
147
|
+
FormLabel.displayName = "FormLabel";
|
|
148
|
+
var FormControl = React2__namespace.forwardRef((_a, ref) => {
|
|
149
|
+
var props = __objRest(_a, []);
|
|
150
|
+
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
151
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
152
|
+
reactSlot.Slot,
|
|
153
|
+
__spreadValues({
|
|
154
|
+
ref,
|
|
155
|
+
id: formItemId,
|
|
156
|
+
"aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
|
|
157
|
+
"aria-invalid": !!error
|
|
158
|
+
}, props)
|
|
159
|
+
);
|
|
160
|
+
});
|
|
161
|
+
FormControl.displayName = "FormControl";
|
|
162
|
+
var FormDescription = React2__namespace.forwardRef((_a, ref) => {
|
|
163
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
164
|
+
const { formDescriptionId } = useFormField();
|
|
165
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
166
|
+
"p",
|
|
167
|
+
__spreadValues({
|
|
168
|
+
ref,
|
|
169
|
+
id: formDescriptionId,
|
|
170
|
+
className: cn("text-sm text-sui-text-muted", className)
|
|
171
|
+
}, props)
|
|
172
|
+
);
|
|
173
|
+
});
|
|
174
|
+
FormDescription.displayName = "FormDescription";
|
|
175
|
+
var FormMessage = React2__namespace.forwardRef((_a, ref) => {
|
|
176
|
+
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
177
|
+
var _a2;
|
|
178
|
+
const { error, formMessageId } = useFormField();
|
|
179
|
+
const body = error ? String((_a2 = error == null ? void 0 : error.message) != null ? _a2 : "") : children;
|
|
180
|
+
if (!body) {
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
184
|
+
"p",
|
|
185
|
+
__spreadProps(__spreadValues({
|
|
186
|
+
ref,
|
|
187
|
+
id: formMessageId,
|
|
188
|
+
className: cn("text-sm font-medium text-destructive", className)
|
|
189
|
+
}, props), {
|
|
190
|
+
children: body
|
|
191
|
+
})
|
|
192
|
+
);
|
|
193
|
+
});
|
|
194
|
+
FormMessage.displayName = "FormMessage";
|
|
195
|
+
|
|
196
|
+
exports.Form = Form;
|
|
197
|
+
exports.FormControl = FormControl;
|
|
198
|
+
exports.FormDescription = FormDescription;
|
|
199
|
+
exports.FormField = FormField;
|
|
200
|
+
exports.FormItem = FormItem;
|
|
201
|
+
exports.FormLabel = FormLabel;
|
|
202
|
+
exports.FormMessage = FormMessage;
|
|
203
|
+
exports.useFormField = useFormField;
|
package/dist/form.mjs
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as React2 from 'react';
|
|
3
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
4
|
+
import { useFormContext, FormProvider, Controller } from 'react-hook-form';
|
|
5
|
+
import { clsx } from 'clsx';
|
|
6
|
+
import { twMerge } from 'tailwind-merge';
|
|
7
|
+
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
8
|
+
import { cva } from 'class-variance-authority';
|
|
9
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
10
|
+
|
|
11
|
+
var __defProp = Object.defineProperty;
|
|
12
|
+
var __defProps = Object.defineProperties;
|
|
13
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
14
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
15
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
17
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
18
|
+
var __spreadValues = (a, b) => {
|
|
19
|
+
for (var prop in b || (b = {}))
|
|
20
|
+
if (__hasOwnProp.call(b, prop))
|
|
21
|
+
__defNormalProp(a, prop, b[prop]);
|
|
22
|
+
if (__getOwnPropSymbols)
|
|
23
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
24
|
+
if (__propIsEnum.call(b, prop))
|
|
25
|
+
__defNormalProp(a, prop, b[prop]);
|
|
26
|
+
}
|
|
27
|
+
return a;
|
|
28
|
+
};
|
|
29
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
30
|
+
var __objRest = (source, exclude) => {
|
|
31
|
+
var target = {};
|
|
32
|
+
for (var prop in source)
|
|
33
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
34
|
+
target[prop] = source[prop];
|
|
35
|
+
if (source != null && __getOwnPropSymbols)
|
|
36
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
37
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
38
|
+
target[prop] = source[prop];
|
|
39
|
+
}
|
|
40
|
+
return target;
|
|
41
|
+
};
|
|
42
|
+
function cn(...inputs) {
|
|
43
|
+
return twMerge(clsx(inputs));
|
|
44
|
+
}
|
|
45
|
+
var labelVariants = cva(
|
|
46
|
+
"text-sm font-medium leading-5 text-sui-text-default"
|
|
47
|
+
);
|
|
48
|
+
var Label = React2.forwardRef((_a, ref) => {
|
|
49
|
+
var _b = _a, { className, required, supportText, tailIcon, children } = _b, props = __objRest(_b, ["className", "required", "supportText", "tailIcon", "children"]);
|
|
50
|
+
const hasTail = !!(supportText || tailIcon);
|
|
51
|
+
return /* @__PURE__ */ jsxs(
|
|
52
|
+
LabelPrimitive.Root,
|
|
53
|
+
__spreadProps(__spreadValues({
|
|
54
|
+
ref,
|
|
55
|
+
className: cn(
|
|
56
|
+
// peer-disabled must be on the outer label — it's the direct sibling of the peer input
|
|
57
|
+
"inline-flex items-center peer-disabled:cursor-not-allowed peer-disabled:text-sui-text-hint",
|
|
58
|
+
hasTail ? "w-full justify-between" : "gap-1",
|
|
59
|
+
className
|
|
60
|
+
)
|
|
61
|
+
}, props), {
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ jsxs("span", { className: cn(labelVariants(), "flex items-center gap-1"), children: [
|
|
64
|
+
children,
|
|
65
|
+
required && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
66
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "text-sm font-semibold leading-5 text-sui-text-destructive", children: "*" }),
|
|
67
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "(required)" })
|
|
68
|
+
] })
|
|
69
|
+
] }),
|
|
70
|
+
hasTail && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
71
|
+
supportText && /* @__PURE__ */ jsx("span", { className: "text-sm font-normal leading-5 text-sui-text-muted", children: supportText }),
|
|
72
|
+
tailIcon && /* @__PURE__ */ jsx("span", { className: "size-5 flex items-center justify-center", children: tailIcon })
|
|
73
|
+
] })
|
|
74
|
+
]
|
|
75
|
+
})
|
|
76
|
+
);
|
|
77
|
+
});
|
|
78
|
+
Label.displayName = LabelPrimitive.Root.displayName;
|
|
79
|
+
var Form = FormProvider;
|
|
80
|
+
var FormFieldContext = React2.createContext(null);
|
|
81
|
+
var FormField = (_a) => {
|
|
82
|
+
var props = __objRest(_a, []);
|
|
83
|
+
return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, __spreadValues({}, props)) });
|
|
84
|
+
};
|
|
85
|
+
var useFormField = () => {
|
|
86
|
+
const fieldContext = React2.useContext(FormFieldContext);
|
|
87
|
+
const itemContext = React2.useContext(FormItemContext);
|
|
88
|
+
const { getFieldState, formState } = useFormContext();
|
|
89
|
+
if (!fieldContext) {
|
|
90
|
+
throw new Error("useFormField should be used within <FormField>");
|
|
91
|
+
}
|
|
92
|
+
if (!itemContext) {
|
|
93
|
+
throw new Error("useFormField should be used within <FormItem>");
|
|
94
|
+
}
|
|
95
|
+
const fieldState = getFieldState(fieldContext.name, formState);
|
|
96
|
+
const { id } = itemContext;
|
|
97
|
+
return __spreadValues({
|
|
98
|
+
id,
|
|
99
|
+
name: fieldContext.name,
|
|
100
|
+
formItemId: `${id}-form-item`,
|
|
101
|
+
formDescriptionId: `${id}-form-item-description`,
|
|
102
|
+
formMessageId: `${id}-form-item-message`
|
|
103
|
+
}, fieldState);
|
|
104
|
+
};
|
|
105
|
+
var FormItemContext = React2.createContext(null);
|
|
106
|
+
var FormItem = React2.forwardRef((_a, ref) => {
|
|
107
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
108
|
+
const id = React2.useId();
|
|
109
|
+
return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx("div", __spreadValues({ ref, className: cn("space-y-2", className) }, props)) });
|
|
110
|
+
});
|
|
111
|
+
FormItem.displayName = "FormItem";
|
|
112
|
+
var FormLabel = React2.forwardRef((_a, ref) => {
|
|
113
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
114
|
+
const { error, formItemId } = useFormField();
|
|
115
|
+
return /* @__PURE__ */ jsx(
|
|
116
|
+
Label,
|
|
117
|
+
__spreadValues({
|
|
118
|
+
ref,
|
|
119
|
+
className: cn(error && "text-destructive", className),
|
|
120
|
+
htmlFor: formItemId
|
|
121
|
+
}, props)
|
|
122
|
+
);
|
|
123
|
+
});
|
|
124
|
+
FormLabel.displayName = "FormLabel";
|
|
125
|
+
var FormControl = React2.forwardRef((_a, ref) => {
|
|
126
|
+
var props = __objRest(_a, []);
|
|
127
|
+
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
128
|
+
return /* @__PURE__ */ jsx(
|
|
129
|
+
Slot,
|
|
130
|
+
__spreadValues({
|
|
131
|
+
ref,
|
|
132
|
+
id: formItemId,
|
|
133
|
+
"aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
|
|
134
|
+
"aria-invalid": !!error
|
|
135
|
+
}, props)
|
|
136
|
+
);
|
|
137
|
+
});
|
|
138
|
+
FormControl.displayName = "FormControl";
|
|
139
|
+
var FormDescription = React2.forwardRef((_a, ref) => {
|
|
140
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
141
|
+
const { formDescriptionId } = useFormField();
|
|
142
|
+
return /* @__PURE__ */ jsx(
|
|
143
|
+
"p",
|
|
144
|
+
__spreadValues({
|
|
145
|
+
ref,
|
|
146
|
+
id: formDescriptionId,
|
|
147
|
+
className: cn("text-sm text-sui-text-muted", className)
|
|
148
|
+
}, props)
|
|
149
|
+
);
|
|
150
|
+
});
|
|
151
|
+
FormDescription.displayName = "FormDescription";
|
|
152
|
+
var FormMessage = React2.forwardRef((_a, ref) => {
|
|
153
|
+
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
154
|
+
var _a2;
|
|
155
|
+
const { error, formMessageId } = useFormField();
|
|
156
|
+
const body = error ? String((_a2 = error == null ? void 0 : error.message) != null ? _a2 : "") : children;
|
|
157
|
+
if (!body) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
return /* @__PURE__ */ jsx(
|
|
161
|
+
"p",
|
|
162
|
+
__spreadProps(__spreadValues({
|
|
163
|
+
ref,
|
|
164
|
+
id: formMessageId,
|
|
165
|
+
className: cn("text-sm font-medium text-destructive", className)
|
|
166
|
+
}, props), {
|
|
167
|
+
children: body
|
|
168
|
+
})
|
|
169
|
+
);
|
|
170
|
+
});
|
|
171
|
+
FormMessage.displayName = "FormMessage";
|
|
172
|
+
|
|
173
|
+
export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
|
package/dist/index.d.mts
CHANGED
|
@@ -16,9 +16,6 @@ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
|
16
16
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
17
17
|
import { DialogProps } from '@radix-ui/react-dialog';
|
|
18
18
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
19
|
-
import * as _radix_ui_react_slot from '@radix-ui/react-slot';
|
|
20
|
-
import * as react_hook_form from 'react-hook-form';
|
|
21
|
-
import { FieldValues, FieldPath, ControllerProps } from 'react-hook-form';
|
|
22
19
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
23
20
|
import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
|
|
24
21
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
@@ -408,12 +405,24 @@ declare namespace CalendarDayButton {
|
|
|
408
405
|
var displayName: string;
|
|
409
406
|
}
|
|
410
407
|
|
|
411
|
-
declare const
|
|
408
|
+
declare const cardVariants: (props?: ({
|
|
409
|
+
variant?: "default" | "flat" | null | undefined;
|
|
410
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
411
|
+
interface CardProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
|
|
412
|
+
}
|
|
413
|
+
declare const Card: React$1.ForwardRefExoticComponent<CardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
412
414
|
declare const CardHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
413
415
|
declare const CardTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
414
416
|
declare const CardDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
415
417
|
declare const CardContent: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
416
418
|
declare const CardFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
419
|
+
interface CardCoverProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
420
|
+
/** Edge-to-edge cover — no inner radius, no inner border. */
|
|
421
|
+
flush?: boolean;
|
|
422
|
+
/** CSS aspect-ratio string (e.g. "3/2", "16/9"). Default: "3/2". */
|
|
423
|
+
aspectRatio?: string;
|
|
424
|
+
}
|
|
425
|
+
declare const CardCover: React$1.ForwardRefExoticComponent<CardCoverProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
417
426
|
|
|
418
427
|
declare const THEMES: {
|
|
419
428
|
readonly light: "";
|
|
@@ -1002,26 +1011,6 @@ interface FileUploadCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement
|
|
|
1002
1011
|
}
|
|
1003
1012
|
declare const FileUploadCard: React$1.ForwardRefExoticComponent<FileUploadCardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1004
1013
|
|
|
1005
|
-
declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: react_hook_form.FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React$1.JSX.Element;
|
|
1006
|
-
declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime.JSX.Element;
|
|
1007
|
-
declare const useFormField: () => {
|
|
1008
|
-
invalid: boolean;
|
|
1009
|
-
isDirty: boolean;
|
|
1010
|
-
isTouched: boolean;
|
|
1011
|
-
isValidating: boolean;
|
|
1012
|
-
error?: react_hook_form.FieldError;
|
|
1013
|
-
id: string;
|
|
1014
|
-
name: string;
|
|
1015
|
-
formItemId: string;
|
|
1016
|
-
formDescriptionId: string;
|
|
1017
|
-
formMessageId: string;
|
|
1018
|
-
};
|
|
1019
|
-
declare const FormItem: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1020
|
-
declare const FormLabel: React$1.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React$1.RefAttributes<HTMLLabelElement>, "ref"> & React$1.RefAttributes<HTMLLabelElement>>;
|
|
1021
|
-
declare const FormControl: React$1.ForwardRefExoticComponent<Omit<_radix_ui_react_slot.SlotProps & React$1.RefAttributes<HTMLElement>, "ref"> & React$1.RefAttributes<HTMLElement>>;
|
|
1022
|
-
declare const FormDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
1023
|
-
declare const FormMessage: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
1024
|
-
|
|
1025
1014
|
declare const gridTableHeaderItemVariants: (props?: ({
|
|
1026
1015
|
variant?: "label" | "checkbox" | "icon" | "empty" | null | undefined;
|
|
1027
1016
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
@@ -2235,4 +2224,4 @@ interface VerticalStepperItemProps extends React$1.HTMLAttributes<HTMLDivElement
|
|
|
2235
2224
|
}
|
|
2236
2225
|
declare const VerticalStepperItem: React$1.ForwardRefExoticComponent<VerticalStepperItemProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2237
2226
|
|
|
2238
|
-
export { Accordion, AccordionContent, AccordionItem, type AccordionItemVariant, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarButton, type AvatarButtonProps, AvatarFallback, type AvatarFallbackProps, AvatarGroup, type AvatarGroupProps, type AvatarGroupSize, type AvatarGroupStacking, AvatarImage, type AvatarProps, AvatarUpload, type AvatarUploadProps, Badge, type BadgeColor, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeVariant, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, type BreadcrumbItemData, type BreadcrumbItemState, type BreadcrumbItemType, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BreadcrumbVariant, Button, ButtonGroup, ButtonGroupItem, type ButtonGroupItemProps, type ButtonGroupOrientation, type ButtonGroupProps, type ButtonGroupSize, type ButtonProps, Calendar, CalendarDayButton, type CaptionColor, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, CheckboxCard, CheckboxList, type CheckboxListProps, CheckboxWithText, Chip, type ChipProps, CodeBlock, type CodeBlockProps, type CodeBlockTab, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ControlButton, type ControlButtonProps, DataRangeSlider, DataRangeSliderInput, DatePicker, DatePickerInput, type DatePickerInputProps, type DatePickerProps, DatePickerWithPresets, type DatePickerWithPresetsProps, type DatePreset, DateRangePicker, type DateRangePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Divider, type DividerProps, DropdownMenu, DropdownMenuCaption, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuLargeItem, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DropdownMenuUserbar, EmptyState, FileUpload, FileUploadArea, type FileUploadAreaProps, FileUploadCard, type FileUploadCardProps, type FileUploadProps, FilterButton, type FilterButtonProps,
|
|
2227
|
+
export { Accordion, AccordionContent, AccordionItem, type AccordionItemVariant, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarButton, type AvatarButtonProps, AvatarFallback, type AvatarFallbackProps, AvatarGroup, type AvatarGroupProps, type AvatarGroupSize, type AvatarGroupStacking, AvatarImage, type AvatarProps, AvatarUpload, type AvatarUploadProps, Badge, type BadgeColor, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeVariant, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, type BreadcrumbItemData, type BreadcrumbItemState, type BreadcrumbItemType, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BreadcrumbVariant, Button, ButtonGroup, ButtonGroupItem, type ButtonGroupItemProps, type ButtonGroupOrientation, type ButtonGroupProps, type ButtonGroupSize, type ButtonProps, Calendar, CalendarDayButton, type CaptionColor, Card, CardContent, CardCover, type CardCoverProps, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, CheckboxCard, CheckboxList, type CheckboxListProps, CheckboxWithText, Chip, type ChipProps, CodeBlock, type CodeBlockProps, type CodeBlockTab, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ControlButton, type ControlButtonProps, DataRangeSlider, DataRangeSliderInput, DatePicker, DatePickerInput, type DatePickerInputProps, type DatePickerProps, DatePickerWithPresets, type DatePickerWithPresetsProps, type DatePreset, DateRangePicker, type DateRangePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Divider, type DividerProps, DropdownMenu, DropdownMenuCaption, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuLargeItem, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DropdownMenuUserbar, EmptyState, FileUpload, FileUploadArea, type FileUploadAreaProps, FileUploadCard, type FileUploadCardProps, type FileUploadProps, FilterButton, type FilterButtonProps, type GridSortDirection, GridTableCell, type GridTableCellProps, GridTableHeaderItem, type GridTableHeaderItemProps, GridTableRow, type GridTableRowProps, GridTableSlotItem, type GridTableSlotItemProps, HorizontalStepper, HorizontalStepperItem, type HorizontalStepperItemProps, type HorizontalStepperProps, InlineTips, Input, InputButton, type InputButtonProps, InputCaption, type InputCaptionProps, InputField, type InputFieldProps, InputStepper, type InputStepperProps, Label, LinkButton, type LinkButtonProps, MenuSearchInput, type MenuSearchInputProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, PageItem, type PageItemProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Paginator, type PaginatorProps, type PasswordRequirement, Popover, PopoverContent, PopoverTrigger, Progress, ProgressBar, type ProgressBarProps, RadialProgressBar, type RadialProgressBarProps, RadioButton, RadioButtonCard, RadioButtonList, type RadioButtonListProps, RadioButtonWithText, RadioCardGroup, RadioGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectInput, type SelectInputProps, SelectItem, SelectLabel, SelectMenu, SelectMenuDescription, SelectMenuFooterButton, type SelectMenuFooterButtonProps, type SelectMenuIndicator, SelectMenuItem, type SelectMenuItemProps, SelectMenuLabel, type SelectMenuLabelProps, SelectMenuLargeItem, type SelectMenuLargeItemProps, type SelectMenuProps, SelectMenuSeparator, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Toaster as ShadcnToaster, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarCard, type SidebarCardProps, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, type SidebarMenuItemProps, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, SliderHandle, SliderInput, SliderRange, SliderRangeInput, type SlotState, type SocialBrand, SocialButton, type SocialButtonProps, SortBreadcrumb, SortBreadcrumbItem, type SortBreadcrumbItemProps, type SortBreadcrumbProps, type SortDirection, StatusBadge, type StatusBadgeProps, type StatusBadgeSize, type StatusBadgeVariant, type StepperColorMode, StepperIcon, type StepperIconProps, StepperNumber, type StepperNumberProps, type StepperState, type StepperStep, type StepperVariant, Switch, SwitchList, type SwitchListProps, SwitchWithText, type SwitchWithTextProps, TabItem, type TabItemProps, TabList, type TabListProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableHeaderItem, TableItem, TablePagination, type TablePaginationProps, TableRow, TableRowSort, type TableSkeletonColumn, TableSkeletonRow, type TableSkeletonRowProps, Tabs, TabsContent, TabsList, TabsTrigger, TextAreaField, type TextAreaFieldProps, Textarea, Toast, ToastAction, type ToastActionElement, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster$1 as Toaster, Toggle, ToggleGroup, ToggleGroupItem, type ToggleGroupItemProps, type ToggleGroupProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, UnderlineTabItem, UnderlineTabsList, type UploadFile, Userbar, type UserbarProps, VerticalStepper, type VerticalStepperColorMode, VerticalStepperItem, type VerticalStepperItemProps, type VerticalStepperProps, type VerticalStepperStep, accordionItemVariants, avatarButtonVariants, avatarVariants, buttonGroupItemVariants, buttonVariants, cardVariants, checkboxCardVariants, checkboxVariants, checkboxWithTextVariants, chipVariants, controlButtonVariants, datePickerInputContainerVariants, dividerVariants, emptyStateVariants, extractInitials, fileUploadCardVariants, filterButtonVariants, formatBytes, gridTableHeaderItemVariants, gridTableRowVariants, gridTableSlotItemVariants, horizontalStepperItemVariants, inlineTipsVariants, inputButtonVariants, inputContainerVariants, lineVariants, linkButtonVariants, navigationMenuTriggerStyle, pageItemVariants, progressBarVariants, radialProgressBarVariants, radioButtonCardVariants, radioButtonVariants, radioButtonWithTextVariants, sidebarCardVariants, sidebarMenuItemVariants, sliderHandleVariants, socialButtonVariants, stepperIconVariants, stepperNumberVariants, tabItemVariants, tabListVariants, tableHeaderItemVariants, tableItemVariants, tableRowSortVariants, textAreaContainerVariants, toggleVariants, tooltipContentVariants, underlineTabItemVariants, underlineTabsListVariants, useSidebar, userbarVariants, validateFile };
|