@cystackapp/ui 1.5.0 → 2.0.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/LICENSE +21 -0
- package/README.md +77 -47
- package/dist/assets/background-pattern-grid.svg.js +7 -0
- package/dist/assets/empty-cloud.svg.js +5 -0
- package/dist/components/accordion/Accordion.d.ts +20 -0
- package/dist/components/accordion/Accordion.js +36 -0
- package/dist/components/accordion/AccordionTestStory.d.ts +3 -0
- package/dist/components/alert/Alert.d.ts +15 -0
- package/dist/components/alert/Alert.js +54 -0
- package/dist/components/avatar/Avatar.d.ts +13 -0
- package/dist/components/avatar/Avatar.js +64 -0
- package/dist/components/background-pattern/BackgroundPatternGrid.d.ts +1 -0
- package/dist/components/background-pattern/BackgroundPatternGrid.js +6 -0
- package/dist/components/badge/Badge.d.ts +1 -1
- package/dist/components/badge/BadgeTestStory.d.ts +1 -1
- package/dist/components/badge/variants/BadgeMore.d.ts +1 -1
- package/dist/components/badge/variants/BadgeMoreTestStory.d.ts +1 -1
- package/dist/components/badge/variants/BadgeTag.d.ts +1 -1
- package/dist/components/banner/Banner.d.ts +9 -0
- package/dist/components/banner/Banner.js +21 -0
- package/dist/components/breadcrumb/Breadcrumb.d.ts +13 -0
- package/dist/components/breadcrumb/Breadcrumb.js +36 -0
- package/dist/components/button/ButtonLoader.d.ts +1 -1
- package/dist/components/button/ButtonTestStory.d.ts +5 -5
- package/dist/components/card/Card.d.ts +1 -1
- package/dist/components/card/Card.stories-ct.d.ts +1 -1
- package/dist/components/card/CardBody.d.ts +1 -1
- package/dist/components/card/CardHeader.d.ts +1 -1
- package/dist/components/chart/chart-legend/ChartLegend.d.ts +38 -0
- package/dist/components/chart/chart-legend/ChartLegend.js +57 -0
- package/dist/components/chart/chart-legend/ChartLegendItem.d.ts +19 -0
- package/dist/components/chart/chart-legend/ChartLegendItem.js +30 -0
- package/dist/components/chart/chart-legend/types.d.ts +49 -0
- package/dist/components/chart/donut-chart/DonutChart.d.ts +55 -0
- package/dist/components/chart/donut-chart/DonutChart.js +110 -0
- package/dist/components/chart/donut-chart/DonutSegments.d.ts +25 -0
- package/dist/components/chart/donut-chart/DonutSegments.js +51 -0
- package/dist/components/chart/donut-chart/donut-tooltip.d.ts +20 -0
- package/dist/components/chart/donut-chart/donut-tooltip.js +37 -0
- package/dist/components/chart/types.d.ts +8 -0
- package/dist/components/checkbox/CheckboxTestStory.d.ts +7 -7
- package/dist/components/collapsible/Collapsible.d.ts +1 -1
- package/dist/components/combobox/Combobox.d.ts +1 -1
- package/dist/components/divider/Divider.d.ts +9 -0
- package/dist/components/divider/Divider.js +28 -0
- package/dist/components/drawer/Drawer.d.ts +8 -0
- package/dist/components/drawer/Drawer.js +68 -0
- package/dist/components/dropdown/Dropdown.d.ts +45 -0
- package/dist/components/dropdown/Dropdown.js +133 -0
- package/dist/components/dropdown/DropdownMenu.d.ts +20 -0
- package/dist/components/dropdown/DropdownMenu.js +78 -0
- package/dist/components/dropdown/DropdownMenuItem.d.ts +13 -0
- package/dist/components/dropdown/DropdownMenuItem.js +49 -0
- package/dist/components/dropdown/DropdownTestStory.d.ts +5 -0
- package/dist/components/dropdown/dropdown-utils.d.ts +4 -0
- package/dist/components/dropdown/dropdown-utils.js +14 -0
- package/dist/components/dropdown/types.d.ts +48 -0
- package/dist/components/dropdown/use-dropdown-keyboard.d.ts +12 -0
- package/dist/components/dropdown/use-dropdown-keyboard.js +49 -0
- package/dist/components/empty-state/EmptyState.d.ts +26 -0
- package/dist/components/empty-state/EmptyState.js +36 -0
- package/dist/components/error-state/ErrorState.d.ts +1 -1
- package/dist/components/featured-icon/FeaturedIcon.d.ts +12 -0
- package/dist/components/featured-icon/FeaturedIcon.js +44 -0
- package/dist/components/form-field/FormField.d.ts +13 -0
- package/dist/components/form-field/FormField.js +21 -0
- package/dist/components/keyboard-shortcut-label/KeyboardShortcutLabel.d.ts +8 -0
- package/dist/components/keyboard-shortcut-label/KeyboardShortcutLabel.js +18 -0
- package/dist/components/loading-state/Loader.d.ts +20 -0
- package/dist/components/loading-state/Loader.js +38 -0
- package/dist/components/loading-state/LoadingState.d.ts +15 -0
- package/dist/components/loading-state/LoadingState.js +47 -0
- package/dist/components/loading-state/locale/en.json.d.ts +6 -0
- package/dist/components/loading-state/locale/en.json.js +7 -0
- package/dist/components/loading-state/locale/vi.json.d.ts +6 -0
- package/dist/components/loading-state/locale/vi.json.js +7 -0
- package/dist/components/media/Media.d.ts +7 -0
- package/dist/components/media/Media.js +25 -0
- package/dist/components/modal/helpers/HeaderIcon.d.ts +1 -1
- package/dist/components/modal/helpers/Title.d.ts +1 -1
- package/dist/components/notification/NotificationBanner.d.ts +9 -0
- package/dist/components/notification/NotificationBanner.js +97 -0
- package/dist/components/notification/icons.d.ts +5 -0
- package/dist/components/notification/icons.js +29 -0
- package/dist/components/notification/index.d.ts +4 -0
- package/dist/components/notification/index.js +26 -0
- package/dist/components/notification/locale/en.json.d.ts +8 -0
- package/dist/components/notification/locale/en.json.js +7 -0
- package/dist/components/notification/locale/vi.json.d.ts +8 -0
- package/dist/components/notification/locale/vi.json.js +7 -0
- package/dist/components/operating-system-icon/OperatingSystemIcon.d.ts +6 -0
- package/dist/components/operating-system-icon/OperatingSystemIcon.js +19 -0
- package/dist/components/operating-system-icon/assets/logo-android.svg.js +5 -0
- package/dist/components/operating-system-icon/assets/logo-apple.svg.js +5 -0
- package/dist/components/operating-system-icon/assets/logo-ubuntu.svg.js +5 -0
- package/dist/components/operating-system-icon/assets/logo-windows-10.svg.js +5 -0
- package/dist/components/page-title/PageTitle.d.ts +1 -1
- package/dist/components/popover/Popover.d.ts +1 -1
- package/dist/components/progress-bar/ProgressBar.d.ts +9 -0
- package/dist/components/progress-bar/ProgressBar.js +31 -0
- package/dist/components/radio/Radio.d.ts +4 -0
- package/dist/components/radio/Radio.js +55 -0
- package/dist/components/searchbox/Searchbox.d.ts +7 -0
- package/dist/components/searchbox/Searchbox.js +15 -0
- package/dist/components/select/Select.d.ts +11 -0
- package/dist/components/select/Select.js +44 -0
- package/dist/components/skeleton/Skeleton.d.ts +14 -0
- package/dist/components/skeleton/Skeleton.js +12 -0
- package/dist/components/switch/Switch.d.ts +1 -1
- package/dist/components/table/Table.d.ts +32 -0
- package/dist/components/table/Table.js +128 -0
- package/dist/components/table/TableActionButton.d.ts +15 -0
- package/dist/components/table/TableActionButton.js +50 -0
- package/dist/components/table/TableCell.d.ts +8 -0
- package/dist/components/table/TableCell.js +26 -0
- package/dist/components/table/TableHeader.d.ts +15 -0
- package/dist/components/table/TableHeader.js +36 -0
- package/dist/components/table/TableHeaderCell.d.ts +10 -0
- package/dist/components/table/TableHeaderCell.js +35 -0
- package/dist/components/table/TablePagination.d.ts +6 -0
- package/dist/components/table/TablePagination.js +69 -0
- package/dist/components/table/TableRow.d.ts +12 -0
- package/dist/components/table/TableRow.js +9 -0
- package/dist/components/table/expandable/ExpandableTable.d.ts +30 -0
- package/dist/components/table/expandable/ExpandableTable.js +156 -0
- package/dist/components/table/hooks/use-fit-page-height.d.ts +14 -0
- package/dist/components/table/hooks/use-fit-page-height.js +21 -0
- package/dist/components/table/hooks/use-row-selection.d.ts +27 -0
- package/dist/components/table/hooks/use-row-selection.js +35 -0
- package/dist/components/table/locale/en.json.d.ts +13 -0
- package/dist/components/table/locale/en.json.js +21 -0
- package/dist/components/table/locale/vi.json.d.ts +13 -0
- package/dist/components/table/locale/vi.json.js +21 -0
- package/dist/components/table/table-utils.d.ts +10 -0
- package/dist/components/table/table-utils.js +10 -0
- package/dist/components/table/types.d.ts +84 -0
- package/dist/components/tabs/Tabs.d.ts +27 -0
- package/dist/components/tabs/Tabs.js +75 -0
- package/dist/components/tabs/TabsTestStory.d.ts +4 -0
- package/dist/components/tags-input/TagsInput.d.ts +18 -0
- package/dist/components/tags-input/TagsInput.js +78 -0
- package/dist/components/tags-input/TagsInputTestStory.d.ts +3 -0
- package/dist/components/textarea/Textarea.d.ts +7 -0
- package/dist/components/textarea/Textarea.js +36 -0
- package/dist/components/toast/ToastSlice.d.ts +1 -1
- package/dist/components/toast/index.d.ts +1 -1
- package/dist/components/tooltip/Tooltip.d.ts +1 -1
- package/dist/filters/FilterDropdown.d.ts +9 -0
- package/dist/filters/FilterDropdown.js +57 -0
- package/dist/filters/types.d.ts +11 -0
- package/dist/filters/url-params.d.ts +5 -0
- package/dist/filters/url-params.js +20 -0
- package/dist/filters/use-filters.d.ts +13 -0
- package/dist/filters/use-filters.js +63 -0
- package/dist/hooks/use-countdown.d.ts +4 -0
- package/dist/hooks/use-countdown.js +18 -0
- package/dist/i18n/resources.js +23 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.js +122 -40
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +421 -350
- package/dist/utils/key-typeguard.d.ts +5 -0
- package/dist/utils/key-typeguard.js +6 -0
- package/dist/utils/use-debounce.d.ts +1 -0
- package/dist/utils/use-debounce.js +11 -0
- package/package.json +28 -6
- package/theme.css +4 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsxs as s, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { cn as m } from "../../utils/cn.js";
|
|
3
|
+
const x = ({ name: e, Icon: r, className: t }) => /* @__PURE__ */ s(
|
|
4
|
+
"div",
|
|
5
|
+
{
|
|
6
|
+
className: m(
|
|
7
|
+
"px-1 py-px flex items-center gap-1 text-xs font-medium text-gray-v2 border border-gray-v2-200 rounded-md",
|
|
8
|
+
t
|
|
9
|
+
),
|
|
10
|
+
children: [
|
|
11
|
+
e,
|
|
12
|
+
r && /* @__PURE__ */ o(r, { className: "size-3.5 shrink-0" })
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
);
|
|
16
|
+
export {
|
|
17
|
+
x as KeyboardShortcutLabel
|
|
18
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
interface LoaderProps {
|
|
2
|
+
/** Size of the loader in rem. Default 4. */
|
|
3
|
+
baseSize?: number;
|
|
4
|
+
/** Number of dot particles. Default 16. */
|
|
5
|
+
particleCount?: number;
|
|
6
|
+
/** Override the default brand color with a custom hex/rgb value. */
|
|
7
|
+
color?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Rotating-dot spinner. Can be used standalone or inside other components.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <Loader /> // default 4 rem, 16 dots
|
|
15
|
+
* <Loader baseSize={1} /> // small inline spinner
|
|
16
|
+
* <Loader color="#e53e3e" /> // custom color
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const Loader: ({ baseSize, particleCount, color, }: LoaderProps) => import("react").JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
const n = 0.1, m = 0.1, s = 1, I = ({
|
|
3
|
+
baseSize: r = 4,
|
|
4
|
+
particleCount: t = 16,
|
|
5
|
+
color: l
|
|
6
|
+
}) => {
|
|
7
|
+
const a = {
|
|
8
|
+
position: "absolute",
|
|
9
|
+
height: r * n + "rem",
|
|
10
|
+
width: r * m + "rem",
|
|
11
|
+
left: r * (0.5 - m / 2) + "rem",
|
|
12
|
+
top: r * (0.5 - n) / 4 + "rem",
|
|
13
|
+
transformOrigin: r * m / 2 + "rem " + r * 0.45 + "rem"
|
|
14
|
+
};
|
|
15
|
+
return /* @__PURE__ */ e(
|
|
16
|
+
"div",
|
|
17
|
+
{
|
|
18
|
+
className: "relative",
|
|
19
|
+
style: { height: r + "rem", width: r + "rem" },
|
|
20
|
+
children: Array.from({ length: t }, (d, o) => /* @__PURE__ */ e(
|
|
21
|
+
"span",
|
|
22
|
+
{
|
|
23
|
+
className: "animate-pseudo-rotate h-2 w-2 rounded-full bg-brand-v2-600",
|
|
24
|
+
style: {
|
|
25
|
+
...a,
|
|
26
|
+
backgroundColor: l,
|
|
27
|
+
rotate: 360 / t * o + "deg",
|
|
28
|
+
animationDelay: -(s / t) * o + "s"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
o
|
|
32
|
+
))
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
};
|
|
36
|
+
export {
|
|
37
|
+
I as Loader
|
|
38
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
className?: string;
|
|
3
|
+
text?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Loading state for CyStack Platform, with a little bit of fun.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <LoadingState />
|
|
11
|
+
* <LoadingState className="min-h-screen" />
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare const LoadingState: ({ className, text }: Props) => import("react").JSX.Element;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as e, jsxs as n } from "react/jsx-runtime";
|
|
2
|
+
import { useState as p, useMemo as g, useEffect as x } from "react";
|
|
3
|
+
import { useTranslation as v } from "react-i18next";
|
|
4
|
+
import { cn as N } from "../../utils/cn.js";
|
|
5
|
+
import { Loader as c } from "./Loader.js";
|
|
6
|
+
const T = 5e3, L = ({ className: l, text: o }) => {
|
|
7
|
+
const { t: i } = v("components/loading-state"), [m, d] = p(!1), f = g(() => {
|
|
8
|
+
const t = {
|
|
9
|
+
normal: 9994,
|
|
10
|
+
cat: 6
|
|
11
|
+
}, r = Object.keys(t), u = r.reduce((a, h) => a + t[h], 0);
|
|
12
|
+
let s = Math.floor(Math.random() * u);
|
|
13
|
+
for (const a of r)
|
|
14
|
+
if (s -= t[a], s < 0) return a;
|
|
15
|
+
return "normal";
|
|
16
|
+
}, []);
|
|
17
|
+
return x(() => {
|
|
18
|
+
const t = setTimeout(() => {
|
|
19
|
+
d(!0);
|
|
20
|
+
}, T);
|
|
21
|
+
return () => clearTimeout(t);
|
|
22
|
+
}, []), /* @__PURE__ */ e(
|
|
23
|
+
"div",
|
|
24
|
+
{
|
|
25
|
+
className: N(
|
|
26
|
+
"flex h-40 w-full items-center justify-center py-12",
|
|
27
|
+
l
|
|
28
|
+
),
|
|
29
|
+
children: f === "cat" ? /* @__PURE__ */ n("div", { className: "relative", children: [
|
|
30
|
+
/* @__PURE__ */ e(
|
|
31
|
+
"img",
|
|
32
|
+
{
|
|
33
|
+
src: "/loading-cat.jpg",
|
|
34
|
+
className: "max-h-40 overflow-hidden object-cover"
|
|
35
|
+
}
|
|
36
|
+
),
|
|
37
|
+
/* @__PURE__ */ e("div", { className: "absolute left-18 top-18", children: /* @__PURE__ */ e(c, { baseSize: 1 }) })
|
|
38
|
+
] }) : /* @__PURE__ */ n("div", { className: "flex flex-col items-center gap-5", children: [
|
|
39
|
+
/* @__PURE__ */ e(c, {}),
|
|
40
|
+
o ? /* @__PURE__ */ e("span", { className: "text-lg font-medium text-gray-v2-700", children: o }) : m ? /* @__PURE__ */ e("span", { className: "text-lg font-medium text-gray-v2-700", children: i("loading") }) : null
|
|
41
|
+
] })
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
};
|
|
45
|
+
export {
|
|
46
|
+
L as LoadingState
|
|
47
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ObjectHTMLAttributes } from 'react';
|
|
2
|
+
interface Props extends Omit<ObjectHTMLAttributes<HTMLObjectElement>, "data"> {
|
|
3
|
+
data?: HTMLObjectElement["data"] | null;
|
|
4
|
+
}
|
|
5
|
+
/** Extends a HTML Object tag since it can display multiple types of media with fallback. */
|
|
6
|
+
export declare const Media: import('react').ForwardRefExoticComponent<Props & import('react').RefAttributes<HTMLObjectElement>>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as r } from "react";
|
|
3
|
+
import { cn as i } from "../../utils/cn.js";
|
|
4
|
+
import { Image02 as t } from "@untitled-ui/icons-react";
|
|
5
|
+
const l = r(
|
|
6
|
+
({ ...e }, c) => e.data ? /* @__PURE__ */ a(
|
|
7
|
+
"object",
|
|
8
|
+
{
|
|
9
|
+
type: "image/png",
|
|
10
|
+
ref: c,
|
|
11
|
+
...e,
|
|
12
|
+
data: e.data,
|
|
13
|
+
className: i(
|
|
14
|
+
"flex justify-center items-center size-7 shrink-0 object-cover",
|
|
15
|
+
e.className
|
|
16
|
+
),
|
|
17
|
+
children: e.children ? e.children : /* @__PURE__ */ a(t, { className: "size-full text-gray-v2-400" })
|
|
18
|
+
},
|
|
19
|
+
e.data
|
|
20
|
+
) : e.children ? e.children : /* @__PURE__ */ a("div", { className: i("size-7 shrink-0 object-cover", e.className), children: /* @__PURE__ */ a(t, { className: "size-full text-gray-v2-400" }) })
|
|
21
|
+
);
|
|
22
|
+
l.displayName = "Media";
|
|
23
|
+
export {
|
|
24
|
+
l as Media
|
|
25
|
+
};
|
|
@@ -4,5 +4,5 @@ interface Props {
|
|
|
4
4
|
type?: IconType;
|
|
5
5
|
Icon: (props: SVGProps<SVGSVGElement>) => ReactNode;
|
|
6
6
|
}
|
|
7
|
-
export declare const ModalHeaderIcon: ({ type, Icon }: Props) => import("react
|
|
7
|
+
export declare const ModalHeaderIcon: ({ type, Icon }: Props) => import("react").JSX.Element;
|
|
8
8
|
export {};
|
|
@@ -2,5 +2,5 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
interface Props {
|
|
3
3
|
children: ReactNode;
|
|
4
4
|
}
|
|
5
|
-
export declare const ModalTitle: ({ children }: Props) => import("react
|
|
5
|
+
export declare const ModalTitle: ({ children }: Props) => import("react").JSX.Element;
|
|
6
6
|
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InternalToastProps } from '../toast/types';
|
|
2
|
+
import { Observable } from '../../utils/observable';
|
|
3
|
+
interface Props {
|
|
4
|
+
toast: InternalToastProps;
|
|
5
|
+
observable: Observable<InternalToastProps>;
|
|
6
|
+
}
|
|
7
|
+
/** Just notification's UI. */
|
|
8
|
+
export declare const NotificationBanner: ({ toast, observable }: Props) => import("react").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { jsxs as o, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { useState as g, useRef as u, useMemo as x, useCallback as l, useEffect as y } from "react";
|
|
3
|
+
import { useTranslation as v } from "react-i18next";
|
|
4
|
+
import { XClose as w } from "@untitled-ui/icons-react";
|
|
5
|
+
import { iconByNotificationType as b } from "./icons.js";
|
|
6
|
+
const H = ({ toast: e, observable: i }) => {
|
|
7
|
+
var d, m;
|
|
8
|
+
const { t: c } = v("components/notification"), [p, f] = g(!1), n = u(null), s = x(() => ["peach"].includes(e.type) ? "gradient" : "normal", [e.type]), a = l(
|
|
9
|
+
(t) => {
|
|
10
|
+
i.notify({ ...t, status: "dismissed" });
|
|
11
|
+
},
|
|
12
|
+
[i]
|
|
13
|
+
), h = l(
|
|
14
|
+
(t) => {
|
|
15
|
+
i.notify({ ...t, status: "destroyed" });
|
|
16
|
+
},
|
|
17
|
+
[i]
|
|
18
|
+
);
|
|
19
|
+
return y(() => {
|
|
20
|
+
f(!0);
|
|
21
|
+
}, []), /* @__PURE__ */ o(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
ref: n,
|
|
25
|
+
style: p ? e.status === "dismissed" ? (
|
|
26
|
+
// The last state before toast is destroyed
|
|
27
|
+
{
|
|
28
|
+
height: 0,
|
|
29
|
+
minHeight: 0,
|
|
30
|
+
opacity: 0,
|
|
31
|
+
paddingTop: 0,
|
|
32
|
+
paddingBottom: 0,
|
|
33
|
+
borderWidth: 0
|
|
34
|
+
}
|
|
35
|
+
) : (
|
|
36
|
+
// The stable state
|
|
37
|
+
{
|
|
38
|
+
height: (m = n.current) == null ? void 0 : m.offsetHeight,
|
|
39
|
+
paddingTop: "1rem",
|
|
40
|
+
paddingBottom: "1rem",
|
|
41
|
+
borderWidth: "1px"
|
|
42
|
+
}
|
|
43
|
+
) : (
|
|
44
|
+
// The first state: before toast is mounted
|
|
45
|
+
{
|
|
46
|
+
transform: "translate(0, 100%)",
|
|
47
|
+
height: (d = n.current) == null ? void 0 : d.offsetHeight,
|
|
48
|
+
paddingTop: "1rem",
|
|
49
|
+
paddingBottom: "1rem",
|
|
50
|
+
borderWidth: "1px"
|
|
51
|
+
}
|
|
52
|
+
),
|
|
53
|
+
className: "v2 relative px-4 w-[80vw] flex items-start gap-4 rounded-lg duration-300 ease-out overflow-hidden border-gray-v2-300 bg-white shadow-xs",
|
|
54
|
+
onTransitionEnd: (t) => {
|
|
55
|
+
t.target === t.currentTarget && t.propertyName === "height" && h(e);
|
|
56
|
+
},
|
|
57
|
+
children: [
|
|
58
|
+
b[e.type],
|
|
59
|
+
/* @__PURE__ */ o("div", { className: "flex flex-col gap-3", children: [
|
|
60
|
+
/* @__PURE__ */ o("div", { className: "flex flex-col gap-1", children: [
|
|
61
|
+
/* @__PURE__ */ r("span", { className: "text-sm font-semibold text-gray-v2-700 min-h-[1em] wrap-break-words", children: e.message }),
|
|
62
|
+
e.detail ? /* @__PURE__ */ r(
|
|
63
|
+
"span",
|
|
64
|
+
{
|
|
65
|
+
className: `text-sm min-h-[1em] wrap-break-words ${s === "gradient" ? "text-white" : "text-gray-v2-600"}`,
|
|
66
|
+
children: e.detail
|
|
67
|
+
}
|
|
68
|
+
) : null
|
|
69
|
+
] }),
|
|
70
|
+
/* @__PURE__ */ r(
|
|
71
|
+
"button",
|
|
72
|
+
{
|
|
73
|
+
className: "text-sm font-semibold text-brand-v2-700 hover:text-brand-v2-800 w-fit",
|
|
74
|
+
onClick: () => {
|
|
75
|
+
a(e);
|
|
76
|
+
},
|
|
77
|
+
children: c("button.ok")
|
|
78
|
+
}
|
|
79
|
+
)
|
|
80
|
+
] }),
|
|
81
|
+
/* @__PURE__ */ r(
|
|
82
|
+
"button",
|
|
83
|
+
{
|
|
84
|
+
className: `absolute m-2 top-2 right-2 flex text-gray-v2-400 ${s === "gradient" ? "bg-transparent hover:bg-transparent" : void 0}`,
|
|
85
|
+
onClick: () => {
|
|
86
|
+
a(e);
|
|
87
|
+
},
|
|
88
|
+
children: /* @__PURE__ */ r(w, { className: "h-5 w-5 min-w-5" })
|
|
89
|
+
}
|
|
90
|
+
)
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
};
|
|
95
|
+
export {
|
|
96
|
+
H as NotificationBanner
|
|
97
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as e, jsxs as o } from "react/jsx-runtime";
|
|
2
|
+
import { InfoCircle as a, AlertTriangle as c, AlertCircle as n, CheckCircle as i } from "@untitled-ui/icons-react";
|
|
3
|
+
const r = ({
|
|
4
|
+
colorClassName: s,
|
|
5
|
+
children: l
|
|
6
|
+
}) => /* @__PURE__ */ o("div", { className: "relative flex", children: [
|
|
7
|
+
l,
|
|
8
|
+
/* @__PURE__ */ e(
|
|
9
|
+
"span",
|
|
10
|
+
{
|
|
11
|
+
className: "absolute -top-[0.21rem] -left-[0.21rem] h-[1.67rem] w-[1.67rem] rounded-full border-[1.67px] opacity-30 " + s
|
|
12
|
+
}
|
|
13
|
+
),
|
|
14
|
+
/* @__PURE__ */ e(
|
|
15
|
+
"span",
|
|
16
|
+
{
|
|
17
|
+
className: "absolute -top-[0.47rem] -left-[0.47rem] h-[2.19rem] w-[2.19rem] rounded-full border-[1.67px] opacity-10 " + s
|
|
18
|
+
}
|
|
19
|
+
)
|
|
20
|
+
] }), d = {
|
|
21
|
+
success: /* @__PURE__ */ e(r, { colorClassName: "border-success-v2-600", children: /* @__PURE__ */ e(i, { className: "h-5 w-5 min-w-5 text-success-v2-600" }) }),
|
|
22
|
+
error: /* @__PURE__ */ e(r, { colorClassName: "border-error-v2-600", children: /* @__PURE__ */ e(n, { className: "h-5 w-5 min-w-5 text-error-v2-600" }) }),
|
|
23
|
+
warning: /* @__PURE__ */ e(r, { colorClassName: "border-warning-v2-600", children: /* @__PURE__ */ e(c, { className: "h-5 w-5 min-w-5 text-warning-v2-600" }) }),
|
|
24
|
+
info: /* @__PURE__ */ e(r, { colorClassName: "border-blue-v2-600", children: /* @__PURE__ */ e(a, { className: "h-5 w-5 min-w-5 text-blue-v2-600" }) }),
|
|
25
|
+
peach: /* @__PURE__ */ e(r, { colorClassName: "border-brand-v2-600", children: /* @__PURE__ */ e(a, { className: "h-5 w-5 min-w-5 text-brand-v2-600" }) })
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
d as iconByNotificationType
|
|
29
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { WrittenOnTheToast } from '../toast/types';
|
|
2
|
+
/** Where we store notifications that requires user interaction. */
|
|
3
|
+
export declare const NotificationBox: () => import("react").JSX.Element;
|
|
4
|
+
export declare const createNotification: (newToast: WrittenOnTheToast) => void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { useToastList as n } from "../toast/use-toast-list.js";
|
|
3
|
+
import { Observable as r } from "../../utils/observable.js";
|
|
4
|
+
import { NotificationBanner as a } from "./NotificationBanner.js";
|
|
5
|
+
const s = () => window.isSecureContext ? crypto.randomUUID() : crypto.getRandomValues(new Uint32Array(1))[0].toString(), e = new r(), p = () => {
|
|
6
|
+
const o = n(e);
|
|
7
|
+
return /* @__PURE__ */ i("div", { className: "flex flex-col gap-2", children: o.map((t) => /* @__PURE__ */ i(
|
|
8
|
+
a,
|
|
9
|
+
{
|
|
10
|
+
toast: t,
|
|
11
|
+
observable: e
|
|
12
|
+
},
|
|
13
|
+
`toast-${t.id}`
|
|
14
|
+
)) });
|
|
15
|
+
}, d = (o) => {
|
|
16
|
+
const t = {
|
|
17
|
+
...o,
|
|
18
|
+
id: s(),
|
|
19
|
+
status: "stable"
|
|
20
|
+
};
|
|
21
|
+
e.notify(t);
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
p as NotificationBox,
|
|
25
|
+
d as createNotification
|
|
26
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import m from "./assets/logo-windows-10.svg.js";
|
|
3
|
+
import p from "./assets/logo-apple.svg.js";
|
|
4
|
+
import g from "./assets/logo-ubuntu.svg.js";
|
|
5
|
+
import d from "./assets/logo-android.svg.js";
|
|
6
|
+
import { Monitor01 as u } from "@untitled-ui/icons-react";
|
|
7
|
+
import { keyTypeguard as f } from "../../utils/key-typeguard.js";
|
|
8
|
+
const r = {
|
|
9
|
+
windows: m,
|
|
10
|
+
darwin: p,
|
|
11
|
+
ubuntu: g,
|
|
12
|
+
android: d
|
|
13
|
+
}, l = ({ osName: o, ...t }) => {
|
|
14
|
+
const n = o != null && f(o, r) ? r[o] : u;
|
|
15
|
+
return /* @__PURE__ */ i(n, { ...t });
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
l as OperatingSystemIcon
|
|
19
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as C from "react";
|
|
2
|
+
const t = (e) => /* @__PURE__ */ C.createElement("svg", { width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ C.createElement("path", { d: "M23.933 18.3905C23.9251 18.3416 23.9176 18.2933 23.9094 18.2449C23.7018 16.9981 23.297 15.792 22.71 14.6714C22.1354 13.5734 21.3938 12.5703 20.5116 11.6978C19.8674 11.0599 19.1531 10.4962 18.3822 10.0173C18.3868 10.0098 18.3907 10.0016 18.3953 9.99398C18.6374 9.57762 18.8802 9.16173 19.1224 8.74518L19.8326 7.5255C20.0031 7.23374 20.1731 6.94123 20.3424 6.64947C20.4282 6.50228 20.4784 6.33729 20.4891 6.16749C20.4999 5.99769 20.4709 5.82772 20.4045 5.67097C20.3136 5.45478 20.155 5.27358 19.9523 5.15427C19.8092 5.06985 19.6489 5.0185 19.4832 5.004C19.414 4.99815 19.3444 4.99872 19.2753 5.00568C19.1021 5.02327 18.9357 5.08149 18.7895 5.17556C18.6434 5.26963 18.5217 5.39687 18.4345 5.54683C18.2645 5.83869 18.0944 6.1311 17.9247 6.42286L17.2145 7.64263C16.9723 8.05909 16.7295 8.47498 16.4874 8.89143C16.461 8.93689 16.4343 8.98224 16.4079 9.02835C16.3712 9.0137 16.3348 8.99914 16.2981 8.98523C14.9631 8.47843 13.5148 8.20123 12.0009 8.20123C11.9595 8.20123 11.9185 8.20123 11.8768 8.20179C10.5308 8.21514 9.23756 8.44819 8.031 8.86633C7.89188 8.91469 7.75372 8.96578 7.61663 9.01958C7.59206 8.97711 7.56675 8.93455 7.54256 8.89199C7.30041 8.47554 7.05759 8.05965 6.81553 7.64319L6.10528 6.42333C5.93484 6.13157 5.76478 5.83915 5.59538 5.5473C5.49058 5.36689 5.33627 5.21999 5.15055 5.12384C4.96483 5.02769 4.75541 4.98628 4.54688 5.00447C4.38087 5.01849 4.22025 5.06994 4.07719 5.15492C3.92009 5.24772 3.78872 5.37806 3.69497 5.53414C3.66862 5.57838 3.64509 5.62439 3.62541 5.67162C3.52271 5.91412 3.51058 6.1852 3.59119 6.43583C3.61547 6.50919 3.64687 6.58087 3.68709 6.65013C3.85746 6.9419 4.02743 7.23391 4.197 7.52615C4.43419 7.93281 4.67081 8.33937 4.90763 8.74592C5.14969 9.16238 5.39213 9.57827 5.63419 9.99473C5.63606 9.99827 5.6385 10.0017 5.64028 10.0052C5.15315 10.3065 4.68814 10.6419 4.24875 11.0088C3.46278 11.6655 2.76347 12.4186 2.1675 13.2502C1.84262 13.7034 1.55003 14.1787 1.29188 14.6726C0.846133 15.5237 0.504838 16.425 0.275344 17.3572C0.203327 17.6512 0.142316 17.9477 0.0924375 18.2461C0.0842813 18.2945 0.0767813 18.3434 0.0692813 18.3917C0.0421861 18.5665 0.0190864 18.7419 0 18.9177H24C23.9808 18.7412 23.9579 18.5658 23.9312 18.3916L23.933 18.3905Z", fill: "#34A853" }), /* @__PURE__ */ C.createElement("path", { d: "M18.2431 15.6134C18.7233 15.2952 18.7931 14.5588 18.3988 13.9689C18.0048 13.3788 17.2961 13.1586 16.8161 13.4768C16.3359 13.795 16.2659 14.5314 16.6602 15.1214C17.0543 15.7114 17.7632 15.9317 18.2431 15.6134ZM7.36137 15.1234C7.75568 14.5335 7.68574 13.7972 7.20555 13.4789C6.72527 13.1606 6.0168 13.3809 5.62249 13.9708C5.22846 14.5609 5.2983 15.2972 5.7783 15.6155C6.25849 15.9338 6.96733 15.7135 7.36137 15.1234Z", fill: "#202124" }));
|
|
3
|
+
export {
|
|
4
|
+
t as default
|
|
5
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as E from "react";
|
|
2
|
+
const A = (w) => /* @__PURE__ */ E.createElement("svg", { width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", ...w }, /* @__PURE__ */ E.createElement("rect", { x: 1, y: 1, width: 22, height: 22, fill: "url(#pattern0)" }), /* @__PURE__ */ E.createElement("defs", null, /* @__PURE__ */ E.createElement("pattern", { id: "pattern0", patternContentUnits: "objectBoundingBox", width: 1, height: 1 }, /* @__PURE__ */ E.createElement("use", { xlinkHref: "#image0_381_4816", transform: "scale(0.00195312)" })), /* @__PURE__ */ E.createElement("image", { id: "image0_381_4816", width: 512, height: 512, xlinkHref: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAgFzAAIBcwEsWO2LAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAwBQTFRF////AwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEAwEEtRVHvgAAAP90Uk5TAAECAwQF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" })));
|
|
3
|
+
export {
|
|
4
|
+
A as default
|
|
5
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as e from "react";
|
|
2
|
+
const r = (t) => /* @__PURE__ */ e.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 285, height: 285, viewBox: "-142.5 -142.5 285 285", xmlnsXlink: "http://www.w3.org/1999/xlink", ...t }, /* @__PURE__ */ e.createElement("circle", { fill: "#DD4814", r: 141.732 }), /* @__PURE__ */ e.createElement("g", { id: "U", fill: "#FFFFFF" }, /* @__PURE__ */ e.createElement("circle", { cx: -96.3772, r: 18.9215 }), /* @__PURE__ */ e.createElement("path", { d: "M-45.6059,68.395C-62.1655,57.3316-74.4844,40.4175-79.6011,20.6065-73.623,15.7354-69.8047,8.3164-69.8047,0-69.8047-8.3164-73.623-15.7354-79.6011-20.6065-74.4844-40.4175-62.1655-57.3316-45.6059-68.395L-31.7715-45.2212C-45.9824-35.2197-55.2754-18.7026-55.2754,0-55.2754,18.7026-45.9824,35.2197-31.7715,45.2212Z" })), /* @__PURE__ */ e.createElement("use", { xlinkHref: "#U", transform: "rotate(120)" }), /* @__PURE__ */ e.createElement("use", { xlinkHref: "#U", transform: "rotate(240)" }));
|
|
3
|
+
export {
|
|
4
|
+
r as default
|
|
5
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as e from "react";
|
|
2
|
+
const a = (t) => /* @__PURE__ */ e.createElement("svg", { width: 24, height: 24, viewBox: "0 0 24 24", fill: "#0078D6", xmlns: "http://www.w3.org/2000/svg", ...t }, /* @__PURE__ */ e.createElement("path", { d: "M2 5.00313V11.5238H9.61905V3.90479L2 5.00313Z" }), /* @__PURE__ */ e.createElement("path", { d: "M2 12.4762H9.61905V20.0952L2 19.0249V12.4762Z" }), /* @__PURE__ */ e.createElement("path", { d: "M10.5715 3.57985L22.0001 2V11.5238H10.5715V3.57985Z" }), /* @__PURE__ */ e.createElement("path", { d: "M10.5715 12.4762H22.0001V22L10.5715 20.3786V12.4762Z" }));
|
|
3
|
+
export {
|
|
4
|
+
a as default
|
|
5
|
+
};
|
|
@@ -4,5 +4,5 @@ interface Props {
|
|
|
4
4
|
contentClassName?: string;
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
}
|
|
7
|
-
export declare const Popover: ({ content, contentClassName, children }: Props) => import("react
|
|
7
|
+
export declare const Popover: ({ content, contentClassName, children }: Props) => import("react").JSX.Element;
|
|
8
8
|
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
/** Progress in the 0–100 range; values outside are clamped. */
|
|
3
|
+
value: number;
|
|
4
|
+
/** Shows the percentage label after the bar. */
|
|
5
|
+
showLabel?: boolean;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const ProgressBar: ({ value, showLabel, className }: Props) => import("react").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { cn as t } from "../../utils/cn.js";
|
|
3
|
+
const d = ({ value: l, showLabel: s = !1, className: n }) => {
|
|
4
|
+
const a = Math.min(100, Math.max(0, l));
|
|
5
|
+
return /* @__PURE__ */ r("div", { className: t("flex items-center gap-3", n), children: [
|
|
6
|
+
/* @__PURE__ */ e(
|
|
7
|
+
"div",
|
|
8
|
+
{
|
|
9
|
+
role: "progressbar",
|
|
10
|
+
"aria-valuenow": a,
|
|
11
|
+
"aria-valuemin": 0,
|
|
12
|
+
"aria-valuemax": 100,
|
|
13
|
+
className: "flex-1 h-2 rounded-full bg-gray-v2-100 overflow-hidden",
|
|
14
|
+
children: /* @__PURE__ */ e(
|
|
15
|
+
"div",
|
|
16
|
+
{
|
|
17
|
+
className: "h-full rounded-full bg-brand-v2-600 transition-all duration-300",
|
|
18
|
+
style: { width: `${a}%` }
|
|
19
|
+
}
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
),
|
|
23
|
+
s && /* @__PURE__ */ r("span", { className: "text-sm font-medium text-gray-v2-700 tabular-nums", children: [
|
|
24
|
+
Math.round(a),
|
|
25
|
+
"%"
|
|
26
|
+
] })
|
|
27
|
+
] });
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
d as ProgressBar
|
|
31
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsxs as o, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as t } from "react";
|
|
3
|
+
import { cn as l } from "../../utils/cn.js";
|
|
4
|
+
const n = t(
|
|
5
|
+
({ checked: a, className: r, ...e }, s) => /* @__PURE__ */ o(
|
|
6
|
+
"label",
|
|
7
|
+
{
|
|
8
|
+
className: l(
|
|
9
|
+
"relative size-5 shrink-0 block rounded-full bg-white transition-all ease-out border",
|
|
10
|
+
a && !e.disabled ? "border-brand-v2-600" : "border-gray-v2-300",
|
|
11
|
+
{ "bg-gray-v2-50": e.disabled },
|
|
12
|
+
r
|
|
13
|
+
),
|
|
14
|
+
children: [
|
|
15
|
+
/* @__PURE__ */ i(
|
|
16
|
+
"input",
|
|
17
|
+
{
|
|
18
|
+
ref: s,
|
|
19
|
+
...e,
|
|
20
|
+
checked: a,
|
|
21
|
+
className: l(
|
|
22
|
+
"absolute top-0 left-0 z-10 size-full rounded-full appearance-none",
|
|
23
|
+
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand-v2-400",
|
|
24
|
+
e.disabled ? "cursor-not-allowed" : "cursor-pointer"
|
|
25
|
+
),
|
|
26
|
+
type: "radio"
|
|
27
|
+
}
|
|
28
|
+
),
|
|
29
|
+
/* @__PURE__ */ i(
|
|
30
|
+
"span",
|
|
31
|
+
{
|
|
32
|
+
className: l(
|
|
33
|
+
"relative size-full transition-all ease-out rounded-full flex justify-center items-center",
|
|
34
|
+
{ "bg-brand-v2-600": !e.disabled },
|
|
35
|
+
{ "scale-75 opacity-0": !a }
|
|
36
|
+
),
|
|
37
|
+
children: /* @__PURE__ */ i(
|
|
38
|
+
"span",
|
|
39
|
+
{
|
|
40
|
+
className: l(
|
|
41
|
+
"size-2 rounded-full transition-all ease-out",
|
|
42
|
+
e.disabled ? "bg-gray-v2-300" : "bg-white"
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
);
|
|
52
|
+
n.displayName = "Radio";
|
|
53
|
+
export {
|
|
54
|
+
n as Radio
|
|
55
|
+
};
|