@dust-tt/sparkle 0.1.2 → 0.1.4
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/.rollup.cache/home/spolu/code/dust/sparkle/dist/components/Button.d.ts +4 -3
- package/.rollup.cache/home/spolu/code/dust/sparkle/dist/components/Button.js +34 -9
- package/.rollup.cache/home/spolu/code/dust/sparkle/dist/components/Button.js.map +1 -1
- package/.rollup.cache/home/spolu/code/dust/sparkle/dist/components/Tab.d.ts +1 -1
- package/.rollup.cache/home/spolu/code/dust/sparkle/dist/components/Tab.js +18 -12
- package/.rollup.cache/home/spolu/code/dust/sparkle/dist/components/Tab.js.map +1 -1
- package/.rollup.cache/home/spolu/code/dust/sparkle/dist/context.d.ts +12 -0
- package/.rollup.cache/home/spolu/code/dust/sparkle/dist/context.js +10 -0
- package/.rollup.cache/home/spolu/code/dust/sparkle/dist/context.js.map +1 -0
- package/dist/cjs/components/Button.d.ts +4 -3
- package/dist/cjs/components/Tab.d.ts +1 -1
- package/dist/cjs/context.d.ts +12 -0
- package/dist/cjs/index.js +64 -26
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/components/Button.d.ts +4 -3
- package/dist/esm/components/Tab.d.ts +1 -1
- package/dist/esm/context.d.ts +12 -0
- package/dist/esm/index.js +64 -26
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Button.tsx +40 -11
- package/src/components/Tab.tsx +32 -16
- package/src/context.tsx +22 -0
- package/tailwind.config.js +8 -8
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import React, { MouseEvent } from "react";
|
|
1
|
+
import React, { MouseEvent, ComponentType } from "react";
|
|
2
2
|
type ButtonProps = {
|
|
3
|
-
type?: "primary" | "secondary";
|
|
3
|
+
type?: "primary" | "secondary" | "tertiary";
|
|
4
4
|
size?: "xs" | "sm" | "md";
|
|
5
5
|
onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
6
6
|
disabled?: boolean;
|
|
7
7
|
label: string;
|
|
8
|
+
icon?: ComponentType;
|
|
8
9
|
className?: string;
|
|
9
10
|
};
|
|
10
|
-
export declare function Button({ type, size, onClick, disabled, label, className, }: ButtonProps): React.JSX.Element;
|
|
11
|
+
export declare function Button({ type, size, onClick, disabled, label, icon, className, }: ButtonProps): React.JSX.Element;
|
|
11
12
|
export {};
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { classNames } from "
|
|
2
|
+
import { classNames } from "@sparkle/lib/utils";
|
|
3
|
+
import { Icon } from "./Icon";
|
|
3
4
|
var sizeClasses = {
|
|
4
|
-
xs: "px-
|
|
5
|
-
sm: "px-
|
|
6
|
-
md: "px-
|
|
5
|
+
xs: "gap-x-1 px-3 py-1.5 text-xs font-semibold",
|
|
6
|
+
sm: "gap-x-1 px-4 py-2 text-sm font-semibold",
|
|
7
|
+
md: "gap-x-1.5 px-5 py-3 text-sm font-bold",
|
|
8
|
+
};
|
|
9
|
+
var containerClasses = {
|
|
10
|
+
xs: "px-0.5",
|
|
11
|
+
sm: "px-1",
|
|
12
|
+
md: "px-1",
|
|
13
|
+
};
|
|
14
|
+
var iconSizeClasses = {
|
|
15
|
+
xs: "h-4 w-4",
|
|
16
|
+
sm: "h-5 w-5",
|
|
17
|
+
md: "h-5 w-5",
|
|
7
18
|
};
|
|
8
19
|
var typeClasses = {
|
|
9
20
|
primary: {
|
|
@@ -17,11 +28,21 @@ var typeClasses = {
|
|
|
17
28
|
},
|
|
18
29
|
},
|
|
19
30
|
secondary: {
|
|
20
|
-
base: "text-action-500 border-structure-
|
|
31
|
+
base: "text-action-500 border-structure-300 bg-structure-0",
|
|
21
32
|
hover: "hover:bg-action-50 hover:border-action-300",
|
|
22
33
|
active: "active:bg-action-100 active:border-action-500",
|
|
23
34
|
dark: {
|
|
24
|
-
base: "dark:text-action-500-dark dark:border-structure-300-dark",
|
|
35
|
+
base: "dark:text-action-500-dark dark:border-structure-300-dark dark:bg-structure-50-dark",
|
|
36
|
+
hover: "dark:hover:bg-action-50-dark dark:hover:border-action-300-dark",
|
|
37
|
+
active: "dark:active:bg-action-100-dark dark:active:border-action-500-dark",
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
tertiary: {
|
|
41
|
+
base: "text-element-700 border-structure-300 bg-structure-0",
|
|
42
|
+
hover: "hover:text-element-800 hover:bg-action-50 hover:border-action-300",
|
|
43
|
+
active: "active:bg-action-100 active:border-action-500",
|
|
44
|
+
dark: {
|
|
45
|
+
base: "dark:text-element-700-dark dark:border-structure-300-dark dark:bg-structure-50-dark",
|
|
25
46
|
hover: "dark:hover:bg-action-50-dark dark:hover:border-action-300-dark",
|
|
26
47
|
active: "dark:active:bg-action-100-dark dark:active:border-action-500-dark",
|
|
27
48
|
},
|
|
@@ -29,8 +50,12 @@ var typeClasses = {
|
|
|
29
50
|
};
|
|
30
51
|
export function Button(_a) {
|
|
31
52
|
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
32
|
-
var _l = _a.type, type = _l === void 0 ? "primary" : _l, _m = _a.size, size = _m === void 0 ? "sm" : _m, onClick = _a.onClick, _o = _a.disabled, disabled = _o === void 0 ? false : _o, label = _a.label, _p = _a.className, className = _p === void 0 ? "" : _p;
|
|
33
|
-
var buttonClasses = classNames("inline-flex items-center border
|
|
34
|
-
|
|
53
|
+
var _l = _a.type, type = _l === void 0 ? "primary" : _l, _m = _a.size, size = _m === void 0 ? "sm" : _m, onClick = _a.onClick, _o = _a.disabled, disabled = _o === void 0 ? false : _o, label = _a.label, icon = _a.icon, _p = _a.className, className = _p === void 0 ? "" : _p;
|
|
54
|
+
var buttonClasses = classNames("inline-flex items-center border transition-all ease-out duration-400 box-border rounded-full scale-95 hover:scale-100 hover:drop-shadow-md active:scale-95 active:drop-shadow-none", sizeClasses[size], (_b = typeClasses[type]) === null || _b === void 0 ? void 0 : _b.base, (_c = typeClasses[type]) === null || _c === void 0 ? void 0 : _c.hover, (_d = typeClasses[type]) === null || _d === void 0 ? void 0 : _d.active, (_f = (_e = typeClasses[type]) === null || _e === void 0 ? void 0 : _e.dark) === null || _f === void 0 ? void 0 : _f.base, (_h = (_g = typeClasses[type]) === null || _g === void 0 ? void 0 : _g.dark) === null || _h === void 0 ? void 0 : _h.hover, (_k = (_j = typeClasses[type]) === null || _j === void 0 ? void 0 : _j.dark) === null || _k === void 0 ? void 0 : _k.active, disabled ? "cursor-not-allowed opacity-50 bg-gray-200" : "", className);
|
|
55
|
+
var iconClasses = classNames(iconSizeClasses[size]);
|
|
56
|
+
var finalContainerClasses = classNames(containerClasses[size]);
|
|
57
|
+
return (React.createElement("button", { type: "button", className: buttonClasses, onClick: onClick, disabled: disabled, "aria-label": label },
|
|
58
|
+
icon && React.createElement(Icon, { IconComponent: icon, className: iconClasses }),
|
|
59
|
+
React.createElement("div", { className: finalContainerClasses }, label)));
|
|
35
60
|
}
|
|
36
61
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { MouseEvent, ComponentType } from \"react\";\nimport { classNames } from \"@sparkle/lib/utils\";\nimport { Icon } from \"./Icon\";\n\ntype ButtonProps = {\n type?: \"primary\" | \"secondary\" | \"tertiary\";\n size?: \"xs\" | \"sm\" | \"md\";\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n disabled?: boolean;\n label: string;\n icon?: ComponentType;\n className?: string;\n};\n\nconst sizeClasses = {\n xs: \"gap-x-1 px-3 py-1.5 text-xs font-semibold\",\n sm: \"gap-x-1 px-4 py-2 text-sm font-semibold\",\n md: \"gap-x-1.5 px-5 py-3 text-sm font-bold\",\n};\n\nconst containerClasses = {\n xs: \"px-0.5\",\n sm: \"px-1\",\n md: \"px-1\",\n};\n\nconst iconSizeClasses = {\n xs: \"h-4 w-4\",\n sm: \"h-5 w-5\",\n md: \"h-5 w-5\",\n};\n\nconst typeClasses = {\n primary: {\n base: \"text-white bg-action-500 border-action-600\",\n hover: \"hover:bg-action-400 hover:border-action-500\",\n active: \"active:bg-action-600 active:border-action-700\",\n dark: {\n base: \"dark:bg-action-500-dark dark:border-action-600-dark\",\n hover: \"dark:hover:bg-action-500-dark dark:hover:border-action-500-dark\",\n active:\n \"dark:active:bg-action-600-dark dark:active:border-action-700-dark\",\n },\n },\n secondary: {\n base: \"text-action-500 border-structure-300 bg-structure-0\",\n hover: \"hover:bg-action-50 hover:border-action-300\",\n active: \"active:bg-action-100 active:border-action-500\",\n dark: {\n base: \"dark:text-action-500-dark dark:border-structure-300-dark dark:bg-structure-50-dark\",\n hover: \"dark:hover:bg-action-50-dark dark:hover:border-action-300-dark\",\n active:\n \"dark:active:bg-action-100-dark dark:active:border-action-500-dark\",\n },\n },\n tertiary: {\n base: \"text-element-700 border-structure-300 bg-structure-0\",\n hover: \"hover:text-element-800 hover:bg-action-50 hover:border-action-300\",\n active: \"active:bg-action-100 active:border-action-500\",\n dark: {\n base: \"dark:text-element-700-dark dark:border-structure-300-dark dark:bg-structure-50-dark\",\n hover: \"dark:hover:bg-action-50-dark dark:hover:border-action-300-dark\",\n active:\n \"dark:active:bg-action-100-dark dark:active:border-action-500-dark\",\n },\n },\n};\n\nexport function Button({\n type = \"primary\",\n size = \"sm\",\n onClick,\n disabled = false,\n label,\n icon,\n className = \"\",\n}: ButtonProps) {\n const buttonClasses = classNames(\n \"inline-flex items-center border transition-all ease-out duration-400 box-border rounded-full scale-95 hover:scale-100 hover:drop-shadow-md active:scale-95 active:drop-shadow-none\",\n sizeClasses[size],\n typeClasses[type]?.base,\n typeClasses[type]?.hover,\n typeClasses[type]?.active,\n typeClasses[type]?.dark?.base,\n typeClasses[type]?.dark?.hover,\n typeClasses[type]?.dark?.active,\n disabled ? \"cursor-not-allowed opacity-50 bg-gray-200\" : \"\",\n className\n );\n\n const iconClasses = classNames(iconSizeClasses[size]);\n const finalContainerClasses = classNames(containerClasses[size]);\n\n return (\n <button\n type=\"button\"\n className={buttonClasses}\n onClick={onClick}\n disabled={disabled}\n aria-label={label}\n >\n {icon && <Icon IconComponent={icon} className={iconClasses} />}\n <div className={finalContainerClasses}>{label}</div>\n </button>\n );\n}\n"]}
|
|
@@ -4,10 +4,10 @@ type TabProps = {
|
|
|
4
4
|
tabs: Array<{
|
|
5
5
|
label: string;
|
|
6
6
|
hideLabel?: boolean;
|
|
7
|
-
href: string;
|
|
8
7
|
current: boolean;
|
|
9
8
|
sizing?: "hug" | "expand";
|
|
10
9
|
icon?: ReactComponentLike;
|
|
10
|
+
href?: string;
|
|
11
11
|
}>;
|
|
12
12
|
onTabClick?: (tabName: string, event: MouseEvent<HTMLAnchorElement>) => void;
|
|
13
13
|
className?: string;
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { SparkleContext } from "@sparkle/context";
|
|
2
3
|
import { classNames } from "@sparkle/lib/utils";
|
|
3
4
|
var tabClasses = {
|
|
4
5
|
default: {
|
|
5
|
-
base: "text-element-800 border-transparent",
|
|
6
|
-
hover: "hover:text-action-
|
|
6
|
+
base: "text-element-800 border-transparent cursor-pointer",
|
|
7
|
+
hover: "hover:text-action-500",
|
|
7
8
|
dark: {
|
|
8
|
-
base: "dark:text-element-
|
|
9
|
+
base: "dark:text-element-700-dark",
|
|
9
10
|
hover: "dark:hover:text-action-600-dark",
|
|
10
11
|
},
|
|
11
12
|
},
|
|
12
13
|
selected: {
|
|
13
|
-
base: "border-action-500 text-action-
|
|
14
|
+
base: "border-action-500 text-action-500 cursor-default",
|
|
14
15
|
hover: "",
|
|
15
16
|
dark: {
|
|
16
17
|
base: "dark:border-action-500-dark dark:text-action-500-dark",
|
|
@@ -21,17 +22,17 @@ var tabClasses = {
|
|
|
21
22
|
var iconClasses = {
|
|
22
23
|
default: {
|
|
23
24
|
base: "text-element-600",
|
|
24
|
-
hover: "group-hover:text-action-400
|
|
25
|
+
hover: "group-hover:text-action-400",
|
|
25
26
|
dark: {
|
|
26
27
|
base: "dark:text-element-600-dark",
|
|
27
|
-
hover: "dark:group-hover:text-action-
|
|
28
|
+
hover: "dark:group-hover:text-action-500-dark",
|
|
28
29
|
},
|
|
29
30
|
},
|
|
30
31
|
selected: {
|
|
31
|
-
base: "text-action-
|
|
32
|
+
base: "text-action-500",
|
|
32
33
|
hover: "",
|
|
33
34
|
dark: {
|
|
34
|
-
base: "dark:text-action-
|
|
35
|
+
base: "dark:text-action-500-dark",
|
|
35
36
|
hover: "",
|
|
36
37
|
},
|
|
37
38
|
},
|
|
@@ -42,6 +43,8 @@ var tabSizingClasses = {
|
|
|
42
43
|
};
|
|
43
44
|
export function Tab(_a) {
|
|
44
45
|
var tabs = _a.tabs, onTabClick = _a.onTabClick, _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
46
|
+
var components = React.useContext(SparkleContext).components;
|
|
47
|
+
var Link = components.link;
|
|
45
48
|
var renderTabs = function () {
|
|
46
49
|
return tabs.map(function (tab) {
|
|
47
50
|
var _a, _b;
|
|
@@ -51,10 +54,13 @@ export function Tab(_a) {
|
|
|
51
54
|
var iconStateClasses = tab.current
|
|
52
55
|
? iconClasses.selected
|
|
53
56
|
: iconClasses.default;
|
|
54
|
-
var finalTabClasses = classNames("group justify-center flex
|
|
55
|
-
var finalIconClasses = classNames("h-5 w-5", iconStateClasses.base, iconStateClasses.hover, className);
|
|
56
|
-
return (React.createElement(
|
|
57
|
-
|
|
57
|
+
var finalTabClasses = classNames("group justify-center flex text-sm font-semibold px-4 py-3 border-b-2 transition-colors duration-400 whitespace-nowrap select-none", tabStateClasses.base, tabStateClasses.hover, tabStateClasses.dark.base, tabStateClasses.dark.hover, tabSizingClasses[(_a = tab.sizing) !== null && _a !== void 0 ? _a : "hug"], className);
|
|
58
|
+
var finalIconClasses = classNames("h-5 w-5 transition-colors duration-400", iconStateClasses.base, iconStateClasses.hover, iconStateClasses.dark.base, iconStateClasses.dark.hover, className);
|
|
59
|
+
return (React.createElement(Link, { key: tab.label, className: finalTabClasses, "aria-current": tab.current ? "page" : undefined, onClick: function (event) { return onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(tab.label, event); }, href: tab.href },
|
|
60
|
+
React.createElement("div", { className: tab.current
|
|
61
|
+
? "flex gap-x-2"
|
|
62
|
+
: "duration-400 flex scale-100 transform gap-x-2 transition-transform ease-out group-hover:scale-110" },
|
|
63
|
+
tab.icon && React.createElement(tab.icon, { className: finalIconClasses }), (_b = tab.hideLabel) !== null && _b !== void 0 ? _b : tab.label)));
|
|
58
64
|
});
|
|
59
65
|
};
|
|
60
66
|
return (React.createElement("div", { className: "border-b border-structure-200 dark:border-structure-200-dark" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../src/components/Tab.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAehD,IAAM,UAAU,GAAG;IACjB,OAAO,EAAE;QACP,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../src/components/Tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ReactComponentLike } from \"prop-types\";\nimport React, { MouseEvent } from \"react\";\n\nimport { SparkleContext } from \"@sparkle/context\";\nimport { classNames } from \"@sparkle/lib/utils\";\n\ntype TabProps = {\n tabs: Array<{\n label: string;\n hideLabel?: boolean;\n current: boolean;\n sizing?: \"hug\" | \"expand\";\n icon?: ReactComponentLike;\n href?: string;\n }>;\n onTabClick?: (tabName: string, event: MouseEvent<HTMLAnchorElement>) => void;\n className?: string;\n};\n\nconst tabClasses = {\n default: {\n base: \"text-element-800 border-transparent cursor-pointer\",\n hover: \"hover:text-action-500\",\n dark: {\n base: \"dark:text-element-700-dark\",\n hover: \"dark:hover:text-action-600-dark\",\n },\n },\n selected: {\n base: \"border-action-500 text-action-500 cursor-default\",\n hover: \"\",\n dark: {\n base: \"dark:border-action-500-dark dark:text-action-500-dark\",\n hover: \"\",\n },\n },\n};\n\nconst iconClasses = {\n default: {\n base: \"text-element-600\",\n hover: \"group-hover:text-action-400\",\n dark: {\n base: \"dark:text-element-600-dark\",\n hover: \"dark:group-hover:text-action-500-dark\",\n },\n },\n selected: {\n base: \"text-action-500\",\n hover: \"\",\n dark: {\n base: \"dark:text-action-500-dark\",\n hover: \"\",\n },\n },\n};\n\nconst tabSizingClasses = {\n hug: \"\",\n expand: \"flex-1\",\n};\n\nexport function Tab({ tabs, onTabClick, className = \"\" }: TabProps) {\n const { components } = React.useContext(SparkleContext);\n const Link = components.link;\n\n const renderTabs = () =>\n tabs.map((tab) => {\n const tabStateClasses = tab.current\n ? tabClasses.selected\n : tabClasses.default;\n const iconStateClasses = tab.current\n ? iconClasses.selected\n : iconClasses.default;\n\n const finalTabClasses = classNames(\n \"group justify-center flex text-sm font-semibold px-4 py-3 border-b-2 transition-colors duration-400 whitespace-nowrap select-none\",\n tabStateClasses.base,\n tabStateClasses.hover,\n tabStateClasses.dark.base,\n tabStateClasses.dark.hover,\n tabSizingClasses[tab.sizing ?? \"hug\"],\n className\n );\n\n const finalIconClasses = classNames(\n \"h-5 w-5 transition-colors duration-400\",\n iconStateClasses.base,\n iconStateClasses.hover,\n iconStateClasses.dark.base,\n iconStateClasses.dark.hover,\n className\n );\n\n return (\n <Link\n key={tab.label}\n className={finalTabClasses}\n aria-current={tab.current ? \"page\" : undefined}\n onClick={(event) => onTabClick?.(tab.label, event)}\n href={tab.href}\n >\n <div\n className={\n tab.current\n ? \"flex gap-x-2\"\n : \"duration-400 flex scale-100 transform gap-x-2 transition-transform ease-out group-hover:scale-110\"\n }\n >\n {tab.icon && <tab.icon className={finalIconClasses} />}\n {tab.hideLabel ?? tab.label}\n </div>\n </Link>\n );\n });\n\n return (\n <div className=\"border-b border-structure-200 dark:border-structure-200-dark\">\n <nav className=\"-mb-px flex space-x-0\" aria-label=\"Tabs\">\n {renderTabs()}\n </nav>\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React, { ComponentType, MouseEvent, ReactNode } from "react";
|
|
2
|
+
export type SparkleContextType = {
|
|
3
|
+
components: {
|
|
4
|
+
link: ComponentType<{
|
|
5
|
+
href?: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
|
|
9
|
+
}>;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export declare const SparkleContext: React.Context<SparkleContextType>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export var SparkleContext = React.createContext({
|
|
3
|
+
components: {
|
|
4
|
+
link: function (_a) {
|
|
5
|
+
var href = _a.href, className = _a.className, children = _a.children;
|
|
6
|
+
return (React.createElement("a", { href: href, className: className }, children));
|
|
7
|
+
},
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAapE,MAAM,CAAC,IAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAqB;IACpE,UAAU,EAAE;QACV,IAAI,EAAE,UAAC,EAA6B;gBAA3B,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,QAAQ,cAAA;YAAO,OAAA,CACvC,2BAAG,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,IAChC,QAAQ,CACP,CACL;QAJwC,CAIxC;KACF;CACF,CAAC,CAAC","sourcesContent":["import React, { ComponentType, MouseEvent, ReactNode } from \"react\";\n\nexport type SparkleContextType = {\n components: {\n link: ComponentType<{\n href?: string;\n className?: string;\n children: ReactNode;\n onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;\n }>;\n };\n};\n\nexport const SparkleContext = React.createContext<SparkleContextType>({\n components: {\n link: ({ href, className, children }) => (\n <a href={href} className={className}>\n {children}\n </a>\n ),\n },\n});\n"]}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import React, { MouseEvent } from "react";
|
|
1
|
+
import React, { MouseEvent, ComponentType } from "react";
|
|
2
2
|
type ButtonProps = {
|
|
3
|
-
type?: "primary" | "secondary";
|
|
3
|
+
type?: "primary" | "secondary" | "tertiary";
|
|
4
4
|
size?: "xs" | "sm" | "md";
|
|
5
5
|
onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
6
6
|
disabled?: boolean;
|
|
7
7
|
label: string;
|
|
8
|
+
icon?: ComponentType;
|
|
8
9
|
className?: string;
|
|
9
10
|
};
|
|
10
|
-
export declare function Button({ type, size, onClick, disabled, label, className, }: ButtonProps): React.JSX.Element;
|
|
11
|
+
export declare function Button({ type, size, onClick, disabled, label, icon, className, }: ButtonProps): React.JSX.Element;
|
|
11
12
|
export {};
|
|
@@ -4,10 +4,10 @@ type TabProps = {
|
|
|
4
4
|
tabs: Array<{
|
|
5
5
|
label: string;
|
|
6
6
|
hideLabel?: boolean;
|
|
7
|
-
href: string;
|
|
8
7
|
current: boolean;
|
|
9
8
|
sizing?: "hug" | "expand";
|
|
10
9
|
icon?: ReactComponentLike;
|
|
10
|
+
href?: string;
|
|
11
11
|
}>;
|
|
12
12
|
onTabClick?: (tabName: string, event: MouseEvent<HTMLAnchorElement>) => void;
|
|
13
13
|
className?: string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React, { ComponentType, MouseEvent, ReactNode } from "react";
|
|
2
|
+
export type SparkleContextType = {
|
|
3
|
+
components: {
|
|
4
|
+
link: ComponentType<{
|
|
5
|
+
href?: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
|
|
9
|
+
}>;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export declare const SparkleContext: React.Context<SparkleContextType>;
|
package/dist/cjs/index.js
CHANGED
|
@@ -48,7 +48,7 @@ function styleInject(css, ref) {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
var css_248z = "/*\n! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n*/\n\nhtml {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font family by default.\n2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n[type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n border-radius: 0px;\n padding-top: 0.5rem;\n padding-right: 0.75rem;\n padding-bottom: 0.5rem;\n padding-left: 0.75rem;\n font-size: 1rem;\n line-height: 1.5rem;\n --tw-shadow: 0 0 #0000;\n}\n\n[type='text']:focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n border-color: #2563eb;\n}\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::placeholder,textarea::placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\n::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n\n::-webkit-date-and-time-value {\n min-height: 1.5em;\n}\n\n::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n\nselect {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n}\n\n[multiple] {\n background-image: initial;\n background-position: initial;\n background-repeat: unset;\n background-size: initial;\n padding-right: 0.75rem;\n -webkit-print-color-adjust: unset;\n print-color-adjust: unset;\n}\n\n[type='checkbox'],[type='radio'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n padding: 0;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n display: inline-block;\n vertical-align: middle;\n background-origin: border-box;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n flex-shrink: 0;\n height: 1rem;\n width: 1rem;\n color: #2563eb;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n --tw-shadow: 0 0 #0000;\n}\n\n[type='checkbox'] {\n border-radius: 0px;\n}\n\n[type='radio'] {\n border-radius: 100%;\n}\n\n[type='checkbox']:focus,[type='radio']:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n\n[type='checkbox']:checked,[type='radio']:checked {\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\");\n}\n\n[type='radio']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");\n}\n\n[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='checkbox']:indeterminate {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e\");\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='file'] {\n background: unset;\n border-color: inherit;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-size: unset;\n line-height: inherit;\n}\n\n[type='file']:focus {\n outline: 1px solid ButtonText;\n outline: 1px auto -webkit-focus-ring-color;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.-mb-px {\n margin-bottom: -1px;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.h-5 {\n height: 1.25rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.cursor-default {\n cursor: default;\n}\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.gap-x-2 {\n -moz-column-gap: 0.5rem;\n column-gap: 0.5rem;\n}\n.space-x-0 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0px * var(--tw-space-x-reverse));\n margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse)));\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.rounded-xl {\n border-radius: 0.75rem;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-b-2 {\n border-bottom-width: 2px;\n}\n.border-action-500 {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n.border-action-600 {\n --tw-border-opacity: 1;\n border-color: rgb(37 99 235 / var(--tw-border-opacity));\n}\n.border-structure-200 {\n --tw-border-opacity: 1;\n border-color: rgb(226 232 240 / var(--tw-border-opacity));\n}\n.border-transparent {\n border-color: transparent;\n}\n.bg-action-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n.bg-gray-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity));\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-medium {\n font-weight: 500;\n}\n.text-action-400 {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity));\n}\n.text-action-500 {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity));\n}\n.text-action-600 {\n --tw-text-opacity: 1;\n color: rgb(37 99 235 / var(--tw-text-opacity));\n}\n.text-element-600 {\n --tw-text-opacity: 1;\n color: rgb(148 163 184 / var(--tw-text-opacity));\n}\n.text-element-800 {\n --tw-text-opacity: 1;\n color: rgb(30 41 59 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-200 {\n transition-duration: 200ms;\n}\n.hover\\:border-action-300:hover {\n --tw-border-opacity: 1;\n border-color: rgb(147 197 253 / var(--tw-border-opacity));\n}\n.hover\\:border-action-500:hover {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n.hover\\:bg-action-400:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(96 165 250 / var(--tw-bg-opacity));\n}\n.hover\\:bg-action-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(239 246 255 / var(--tw-bg-opacity));\n}\n.hover\\:text-action-600:hover {\n --tw-text-opacity: 1;\n color: rgb(37 99 235 / var(--tw-text-opacity));\n}\n.active\\:border-action-500:active {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n.active\\:border-action-700:active {\n --tw-border-opacity: 1;\n border-color: rgb(29 78 216 / var(--tw-border-opacity));\n}\n.active\\:bg-action-100:active {\n --tw-bg-opacity: 1;\n background-color: rgb(219 234 254 / var(--tw-bg-opacity));\n}\n.active\\:bg-action-600:active {\n --tw-bg-opacity: 1;\n background-color: rgb(37 99 235 / var(--tw-bg-opacity));\n}\n.group:hover .group-hover\\:text-action-400 {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity));\n}\n@media (prefers-color-scheme: dark) {\n\n .dark\\:border-action-500-dark {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n }\n\n .dark\\:border-action-600-dark {\n --tw-border-opacity: 1;\n border-color: rgb(96 165 250 / var(--tw-border-opacity));\n }\n\n .dark\\:border-structure-200-dark {\n --tw-border-opacity: 1;\n border-color: rgb(51 65 85 / var(--tw-border-opacity));\n }\n\n .dark\\:border-structure-300-dark {\n --tw-border-opacity: 1;\n border-color: rgb(71 85 105 / var(--tw-border-opacity));\n }\n\n .dark\\:bg-action-500-dark {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n }\n\n .dark\\:text-action-400-dark {\n --tw-text-opacity: 1;\n color: rgb(37 99 235 / var(--tw-text-opacity));\n }\n\n .dark\\:text-action-500-dark {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity));\n }\n\n .dark\\:text-element-600-dark {\n --tw-text-opacity: 1;\n color: rgb(148 163 184 / var(--tw-text-opacity));\n }\n\n .dark\\:text-element-800-dark {\n --tw-text-opacity: 1;\n color: rgb(226 232 240 / var(--tw-text-opacity));\n }\n\n .dark\\:hover\\:border-action-300-dark:hover {\n --tw-border-opacity: 1;\n border-color: rgb(29 78 216 / var(--tw-border-opacity));\n }\n\n .dark\\:hover\\:border-action-500-dark:hover {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n }\n\n .dark\\:hover\\:bg-action-50-dark:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(23 37 84 / var(--tw-bg-opacity));\n }\n\n .dark\\:hover\\:bg-action-500-dark:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n }\n\n .dark\\:hover\\:text-action-600-dark:hover {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity));\n }\n\n .dark\\:active\\:border-action-500-dark:active {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n }\n\n .dark\\:active\\:border-action-700-dark:active {\n --tw-border-opacity: 1;\n border-color: rgb(147 197 253 / var(--tw-border-opacity));\n }\n\n .dark\\:active\\:bg-action-100-dark:active {\n --tw-bg-opacity: 1;\n background-color: rgb(30 58 138 / var(--tw-bg-opacity));\n }\n\n .dark\\:active\\:bg-action-600-dark:active {\n --tw-bg-opacity: 1;\n background-color: rgb(96 165 250 / var(--tw-bg-opacity));\n }\n\n .group:hover .dark\\:group-hover\\:text-action-400-dark {\n --tw-text-opacity: 1;\n color: rgb(37 99 235 / var(--tw-text-opacity));\n }\n}";
|
|
51
|
+
var css_248z = "/*\n! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n*/\n\nhtml {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font family by default.\n2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n[type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n border-radius: 0px;\n padding-top: 0.5rem;\n padding-right: 0.75rem;\n padding-bottom: 0.5rem;\n padding-left: 0.75rem;\n font-size: 1rem;\n line-height: 1.5rem;\n --tw-shadow: 0 0 #0000;\n}\n\n[type='text']:focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n border-color: #2563eb;\n}\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::placeholder,textarea::placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\n::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n\n::-webkit-date-and-time-value {\n min-height: 1.5em;\n}\n\n::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n\nselect {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n}\n\n[multiple] {\n background-image: initial;\n background-position: initial;\n background-repeat: unset;\n background-size: initial;\n padding-right: 0.75rem;\n -webkit-print-color-adjust: unset;\n print-color-adjust: unset;\n}\n\n[type='checkbox'],[type='radio'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n padding: 0;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n display: inline-block;\n vertical-align: middle;\n background-origin: border-box;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n flex-shrink: 0;\n height: 1rem;\n width: 1rem;\n color: #2563eb;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n --tw-shadow: 0 0 #0000;\n}\n\n[type='checkbox'] {\n border-radius: 0px;\n}\n\n[type='radio'] {\n border-radius: 100%;\n}\n\n[type='checkbox']:focus,[type='radio']:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n\n[type='checkbox']:checked,[type='radio']:checked {\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\");\n}\n\n[type='radio']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");\n}\n\n[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='checkbox']:indeterminate {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e\");\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='file'] {\n background: unset;\n border-color: inherit;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-size: unset;\n line-height: inherit;\n}\n\n[type='file']:focus {\n outline: 1px solid ButtonText;\n outline: 1px auto -webkit-focus-ring-color;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.-mb-px {\n margin-bottom: -1px;\n}\n.box-border {\n box-sizing: border-box;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.h-4 {\n height: 1rem;\n}\n.h-5 {\n height: 1.25rem;\n}\n.w-4 {\n width: 1rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.scale-95 {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-default {\n cursor: default;\n}\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.gap-x-1 {\n -moz-column-gap: 0.25rem;\n column-gap: 0.25rem;\n}\n.gap-x-1\\.5 {\n -moz-column-gap: 0.375rem;\n column-gap: 0.375rem;\n}\n.gap-x-2 {\n -moz-column-gap: 0.5rem;\n column-gap: 0.5rem;\n}\n.space-x-0 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0px * var(--tw-space-x-reverse));\n margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse)));\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.border {\n border-width: 1px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-b-2 {\n border-bottom-width: 2px;\n}\n.border-action-500 {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n.border-action-600 {\n --tw-border-opacity: 1;\n border-color: rgb(37 99 235 / var(--tw-border-opacity));\n}\n.border-structure-200 {\n --tw-border-opacity: 1;\n border-color: rgb(226 232 240 / var(--tw-border-opacity));\n}\n.border-structure-300 {\n --tw-border-opacity: 1;\n border-color: rgb(203 213 225 / var(--tw-border-opacity));\n}\n.border-transparent {\n border-color: transparent;\n}\n.bg-action-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n.bg-gray-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity));\n}\n.bg-structure-0 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.px-0 {\n padding-left: 0px;\n padding-right: 0px;\n}\n.px-0\\.5 {\n padding-left: 0.125rem;\n padding-right: 0.125rem;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-semibold {\n font-weight: 600;\n}\n.text-action-500 {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity));\n}\n.text-element-600 {\n --tw-text-opacity: 1;\n color: rgb(148 163 184 / var(--tw-text-opacity));\n}\n.text-element-700 {\n --tw-text-opacity: 1;\n color: rgb(100 116 139 / var(--tw-text-opacity));\n}\n.text-element-800 {\n --tw-text-opacity: 1;\n color: rgb(51 65 85 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.hover\\:scale-100:hover {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.hover\\:border-action-300:hover {\n --tw-border-opacity: 1;\n border-color: rgb(147 197 253 / var(--tw-border-opacity));\n}\n.hover\\:border-action-500:hover {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n.hover\\:bg-action-400:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(96 165 250 / var(--tw-bg-opacity));\n}\n.hover\\:bg-action-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(239 246 255 / var(--tw-bg-opacity));\n}\n.hover\\:text-action-500:hover {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity));\n}\n.hover\\:text-element-800:hover {\n --tw-text-opacity: 1;\n color: rgb(51 65 85 / var(--tw-text-opacity));\n}\n.hover\\:drop-shadow-md:hover {\n --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.active\\:scale-95:active {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.active\\:border-action-500:active {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n.active\\:border-action-700:active {\n --tw-border-opacity: 1;\n border-color: rgb(29 78 216 / var(--tw-border-opacity));\n}\n.active\\:bg-action-100:active {\n --tw-bg-opacity: 1;\n background-color: rgb(219 234 254 / var(--tw-bg-opacity));\n}\n.active\\:bg-action-600:active {\n --tw-bg-opacity: 1;\n background-color: rgb(37 99 235 / var(--tw-bg-opacity));\n}\n.active\\:drop-shadow-none:active {\n --tw-drop-shadow: drop-shadow(0 0 #0000);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.group:hover .group-hover\\:scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.group:hover .group-hover\\:text-action-400 {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity));\n}\n:is(.dark .dark\\:border-action-500-dark) {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n:is(.dark .dark\\:border-action-600-dark) {\n --tw-border-opacity: 1;\n border-color: rgb(96 165 250 / var(--tw-border-opacity));\n}\n:is(.dark .dark\\:border-structure-200-dark) {\n --tw-border-opacity: 1;\n border-color: rgb(51 65 85 / var(--tw-border-opacity));\n}\n:is(.dark .dark\\:border-structure-300-dark) {\n --tw-border-opacity: 1;\n border-color: rgb(71 85 105 / var(--tw-border-opacity));\n}\n:is(.dark .dark\\:bg-action-500-dark) {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n:is(.dark .dark\\:bg-structure-50-dark) {\n --tw-bg-opacity: 1;\n background-color: rgb(15 23 42 / var(--tw-bg-opacity));\n}\n:is(.dark .dark\\:text-action-500-dark) {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity));\n}\n:is(.dark .dark\\:text-element-600-dark) {\n --tw-text-opacity: 1;\n color: rgb(148 163 184 / var(--tw-text-opacity));\n}\n:is(.dark .dark\\:text-element-700-dark) {\n --tw-text-opacity: 1;\n color: rgb(203 213 225 / var(--tw-text-opacity));\n}\n:is(.dark .dark\\:hover\\:border-action-300-dark:hover) {\n --tw-border-opacity: 1;\n border-color: rgb(29 78 216 / var(--tw-border-opacity));\n}\n:is(.dark .dark\\:hover\\:border-action-500-dark:hover) {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n:is(.dark .dark\\:hover\\:bg-action-50-dark:hover) {\n --tw-bg-opacity: 1;\n background-color: rgb(23 37 84 / var(--tw-bg-opacity));\n}\n:is(.dark .dark\\:hover\\:bg-action-500-dark:hover) {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\n}\n:is(.dark .dark\\:hover\\:text-action-600-dark:hover) {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity));\n}\n:is(.dark .dark\\:active\\:border-action-500-dark:active) {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity));\n}\n:is(.dark .dark\\:active\\:border-action-700-dark:active) {\n --tw-border-opacity: 1;\n border-color: rgb(147 197 253 / var(--tw-border-opacity));\n}\n:is(.dark .dark\\:active\\:bg-action-100-dark:active) {\n --tw-bg-opacity: 1;\n background-color: rgb(30 58 138 / var(--tw-bg-opacity));\n}\n:is(.dark .dark\\:active\\:bg-action-600-dark:active) {\n --tw-bg-opacity: 1;\n background-color: rgb(96 165 250 / var(--tw-bg-opacity));\n}\n:is(.dark .group:hover .dark\\:group-hover\\:text-action-500-dark) {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity));\n}";
|
|
52
52
|
styleInject(css_248z);
|
|
53
53
|
|
|
54
54
|
function classNames() {
|
|
@@ -59,10 +59,25 @@ function classNames() {
|
|
|
59
59
|
return classes.filter(Boolean).join(" ");
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
function Icon(_a) {
|
|
63
|
+
var IconComponent = _a.IconComponent, _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
64
|
+
return IconComponent ? React.createElement(IconComponent, { className: className }) : null;
|
|
65
|
+
}
|
|
66
|
+
|
|
62
67
|
var sizeClasses = {
|
|
63
|
-
xs: "px-
|
|
64
|
-
sm: "px-
|
|
65
|
-
md: "px-
|
|
68
|
+
xs: "gap-x-1 px-3 py-1.5 text-xs font-semibold",
|
|
69
|
+
sm: "gap-x-1 px-4 py-2 text-sm font-semibold",
|
|
70
|
+
md: "gap-x-1.5 px-5 py-3 text-sm font-bold",
|
|
71
|
+
};
|
|
72
|
+
var containerClasses = {
|
|
73
|
+
xs: "px-0.5",
|
|
74
|
+
sm: "px-1",
|
|
75
|
+
md: "px-1",
|
|
76
|
+
};
|
|
77
|
+
var iconSizeClasses = {
|
|
78
|
+
xs: "h-4 w-4",
|
|
79
|
+
sm: "h-5 w-5",
|
|
80
|
+
md: "h-5 w-5",
|
|
66
81
|
};
|
|
67
82
|
var typeClasses = {
|
|
68
83
|
primary: {
|
|
@@ -76,11 +91,21 @@ var typeClasses = {
|
|
|
76
91
|
},
|
|
77
92
|
},
|
|
78
93
|
secondary: {
|
|
79
|
-
base: "text-action-500 border-structure-
|
|
94
|
+
base: "text-action-500 border-structure-300 bg-structure-0",
|
|
80
95
|
hover: "hover:bg-action-50 hover:border-action-300",
|
|
81
96
|
active: "active:bg-action-100 active:border-action-500",
|
|
82
97
|
dark: {
|
|
83
|
-
base: "dark:text-action-500-dark dark:border-structure-300-dark",
|
|
98
|
+
base: "dark:text-action-500-dark dark:border-structure-300-dark dark:bg-structure-50-dark",
|
|
99
|
+
hover: "dark:hover:bg-action-50-dark dark:hover:border-action-300-dark",
|
|
100
|
+
active: "dark:active:bg-action-100-dark dark:active:border-action-500-dark",
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
tertiary: {
|
|
104
|
+
base: "text-element-700 border-structure-300 bg-structure-0",
|
|
105
|
+
hover: "hover:text-element-800 hover:bg-action-50 hover:border-action-300",
|
|
106
|
+
active: "active:bg-action-100 active:border-action-500",
|
|
107
|
+
dark: {
|
|
108
|
+
base: "dark:text-element-700-dark dark:border-structure-300-dark dark:bg-structure-50-dark",
|
|
84
109
|
hover: "dark:hover:bg-action-50-dark dark:hover:border-action-300-dark",
|
|
85
110
|
active: "dark:active:bg-action-100-dark dark:active:border-action-500-dark",
|
|
86
111
|
},
|
|
@@ -88,22 +113,35 @@ var typeClasses = {
|
|
|
88
113
|
};
|
|
89
114
|
function Button(_a) {
|
|
90
115
|
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
91
|
-
var _l = _a.type, type = _l === void 0 ? "primary" : _l, _m = _a.size, size = _m === void 0 ? "sm" : _m, onClick = _a.onClick, _o = _a.disabled, disabled = _o === void 0 ? false : _o, label = _a.label, _p = _a.className, className = _p === void 0 ? "" : _p;
|
|
92
|
-
var buttonClasses = classNames("inline-flex items-center border
|
|
93
|
-
|
|
116
|
+
var _l = _a.type, type = _l === void 0 ? "primary" : _l, _m = _a.size, size = _m === void 0 ? "sm" : _m, onClick = _a.onClick, _o = _a.disabled, disabled = _o === void 0 ? false : _o, label = _a.label, icon = _a.icon, _p = _a.className, className = _p === void 0 ? "" : _p;
|
|
117
|
+
var buttonClasses = classNames("inline-flex items-center border transition-all ease-out duration-400 box-border rounded-full scale-95 hover:scale-100 hover:drop-shadow-md active:scale-95 active:drop-shadow-none", sizeClasses[size], (_b = typeClasses[type]) === null || _b === void 0 ? void 0 : _b.base, (_c = typeClasses[type]) === null || _c === void 0 ? void 0 : _c.hover, (_d = typeClasses[type]) === null || _d === void 0 ? void 0 : _d.active, (_f = (_e = typeClasses[type]) === null || _e === void 0 ? void 0 : _e.dark) === null || _f === void 0 ? void 0 : _f.base, (_h = (_g = typeClasses[type]) === null || _g === void 0 ? void 0 : _g.dark) === null || _h === void 0 ? void 0 : _h.hover, (_k = (_j = typeClasses[type]) === null || _j === void 0 ? void 0 : _j.dark) === null || _k === void 0 ? void 0 : _k.active, disabled ? "cursor-not-allowed opacity-50 bg-gray-200" : "", className);
|
|
118
|
+
var iconClasses = classNames(iconSizeClasses[size]);
|
|
119
|
+
var finalContainerClasses = classNames(containerClasses[size]);
|
|
120
|
+
return (React.createElement("button", { type: "button", className: buttonClasses, onClick: onClick, disabled: disabled, "aria-label": label },
|
|
121
|
+
icon && React.createElement(Icon, { IconComponent: icon, className: iconClasses }),
|
|
122
|
+
React.createElement("div", { className: finalContainerClasses }, label)));
|
|
94
123
|
}
|
|
95
124
|
|
|
125
|
+
var SparkleContext = React.createContext({
|
|
126
|
+
components: {
|
|
127
|
+
link: function (_a) {
|
|
128
|
+
var href = _a.href, className = _a.className, children = _a.children;
|
|
129
|
+
return (React.createElement("a", { href: href, className: className }, children));
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
|
|
96
134
|
var tabClasses = {
|
|
97
135
|
default: {
|
|
98
|
-
base: "text-element-800 border-transparent",
|
|
99
|
-
hover: "hover:text-action-
|
|
136
|
+
base: "text-element-800 border-transparent cursor-pointer",
|
|
137
|
+
hover: "hover:text-action-500",
|
|
100
138
|
dark: {
|
|
101
|
-
base: "dark:text-element-
|
|
139
|
+
base: "dark:text-element-700-dark",
|
|
102
140
|
hover: "dark:hover:text-action-600-dark",
|
|
103
141
|
},
|
|
104
142
|
},
|
|
105
143
|
selected: {
|
|
106
|
-
base: "border-action-500 text-action-
|
|
144
|
+
base: "border-action-500 text-action-500 cursor-default",
|
|
107
145
|
hover: "",
|
|
108
146
|
dark: {
|
|
109
147
|
base: "dark:border-action-500-dark dark:text-action-500-dark",
|
|
@@ -114,17 +152,17 @@ var tabClasses = {
|
|
|
114
152
|
var iconClasses = {
|
|
115
153
|
default: {
|
|
116
154
|
base: "text-element-600",
|
|
117
|
-
hover: "group-hover:text-action-400
|
|
155
|
+
hover: "group-hover:text-action-400",
|
|
118
156
|
dark: {
|
|
119
157
|
base: "dark:text-element-600-dark",
|
|
120
|
-
hover: "dark:group-hover:text-action-
|
|
158
|
+
hover: "dark:group-hover:text-action-500-dark",
|
|
121
159
|
},
|
|
122
160
|
},
|
|
123
161
|
selected: {
|
|
124
|
-
base: "text-action-
|
|
162
|
+
base: "text-action-500",
|
|
125
163
|
hover: "",
|
|
126
164
|
dark: {
|
|
127
|
-
base: "dark:text-action-
|
|
165
|
+
base: "dark:text-action-500-dark",
|
|
128
166
|
hover: "",
|
|
129
167
|
},
|
|
130
168
|
},
|
|
@@ -135,6 +173,8 @@ var tabSizingClasses = {
|
|
|
135
173
|
};
|
|
136
174
|
function Tab(_a) {
|
|
137
175
|
var tabs = _a.tabs, onTabClick = _a.onTabClick, _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
176
|
+
var components = React.useContext(SparkleContext).components;
|
|
177
|
+
var Link = components.link;
|
|
138
178
|
var renderTabs = function () {
|
|
139
179
|
return tabs.map(function (tab) {
|
|
140
180
|
var _a, _b;
|
|
@@ -144,21 +184,19 @@ function Tab(_a) {
|
|
|
144
184
|
var iconStateClasses = tab.current
|
|
145
185
|
? iconClasses.selected
|
|
146
186
|
: iconClasses.default;
|
|
147
|
-
var finalTabClasses = classNames("group justify-center flex
|
|
148
|
-
var finalIconClasses = classNames("h-5 w-5", iconStateClasses.base, iconStateClasses.hover, className);
|
|
149
|
-
return (React.createElement(
|
|
150
|
-
|
|
187
|
+
var finalTabClasses = classNames("group justify-center flex text-sm font-semibold px-4 py-3 border-b-2 transition-colors duration-400 whitespace-nowrap select-none", tabStateClasses.base, tabStateClasses.hover, tabStateClasses.dark.base, tabStateClasses.dark.hover, tabSizingClasses[(_a = tab.sizing) !== null && _a !== void 0 ? _a : "hug"], className);
|
|
188
|
+
var finalIconClasses = classNames("h-5 w-5 transition-colors duration-400", iconStateClasses.base, iconStateClasses.hover, iconStateClasses.dark.base, iconStateClasses.dark.hover, className);
|
|
189
|
+
return (React.createElement(Link, { key: tab.label, className: finalTabClasses, "aria-current": tab.current ? "page" : undefined, onClick: function (event) { return onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(tab.label, event); }, href: tab.href },
|
|
190
|
+
React.createElement("div", { className: tab.current
|
|
191
|
+
? "flex gap-x-2"
|
|
192
|
+
: "duration-400 flex scale-100 transform gap-x-2 transition-transform ease-out group-hover:scale-110" },
|
|
193
|
+
tab.icon && React.createElement(tab.icon, { className: finalIconClasses }), (_b = tab.hideLabel) !== null && _b !== void 0 ? _b : tab.label)));
|
|
151
194
|
});
|
|
152
195
|
};
|
|
153
196
|
return (React.createElement("div", { className: "border-b border-structure-200 dark:border-structure-200-dark" },
|
|
154
197
|
React.createElement("nav", { className: "-mb-px flex space-x-0", "aria-label": "Tabs" }, renderTabs())));
|
|
155
198
|
}
|
|
156
199
|
|
|
157
|
-
function Icon(_a) {
|
|
158
|
-
var IconComponent = _a.IconComponent, _b = _a.className, className = _b === void 0 ? "" : _b;
|
|
159
|
-
return IconComponent ? React.createElement(IconComponent, { className: className }) : null;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
200
|
/******************************************************************************
|
|
163
201
|
Copyright (c) Microsoft Corporation.
|
|
164
202
|
|