@neuralytics/alpine-ds 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/components/button/AlpineButton.vue.d.ts +48 -0
- package/dist/components/button/index.d.ts +9 -0
- package/dist/components/icon/AlpineIcon.vue.d.ts +43 -0
- package/dist/components/icon/index.d.ts +8 -0
- package/dist/index.d.ts +4 -0
- package/dist/main.d.ts +1 -0
- package/dist/neuralytics-alpine-ds.js +165 -0
- package/dist/neuralytics-alpine-ds.umd.cjs +1 -0
- package/dist/style.css +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
To use it correctly, you have to install some dependencies:
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
pnpm i -D neuralytics
|
|
8
|
+
pnpm i -D @neuralytics/alpine-ds tailwindcss autoprefixer @egoist/tailwindcss-icons
|
|
9
9
|
pnpm i class-variance-authority @iconify-json/mdi
|
|
10
10
|
```
|
|
11
11
|
|
|
@@ -130,18 +130,18 @@ Add those lines to your main css file:
|
|
|
130
130
|
@tailwind utilities;
|
|
131
131
|
```
|
|
132
132
|
|
|
133
|
-
and import the
|
|
133
|
+
and import the `@neuralytics/alpine-ds` style to your main file:
|
|
134
134
|
|
|
135
135
|
```js
|
|
136
|
-
import "neuralytics
|
|
136
|
+
import "@neuralytics/alpine-ds/css"
|
|
137
137
|
```
|
|
138
138
|
|
|
139
139
|
---
|
|
140
140
|
|
|
141
|
-
To use neuralytics
|
|
141
|
+
To use @neuralytics/alpine-ds components, follow the examples below:
|
|
142
142
|
|
|
143
143
|
```js
|
|
144
|
-
import { AlpineButton } from "neuralytics
|
|
144
|
+
import { AlpineButton } from "@neuralytics/alpine-ds"
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
### You want more ?
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ButtonVariants } from '.';
|
|
2
|
+
|
|
3
|
+
export interface Props {
|
|
4
|
+
variant?: ButtonVariants["variant"];
|
|
5
|
+
label?: string | null;
|
|
6
|
+
icon?: string | null;
|
|
7
|
+
iconPosition?: string;
|
|
8
|
+
isLoading?: boolean;
|
|
9
|
+
isDisabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
|
|
12
|
+
variant: string;
|
|
13
|
+
label: null;
|
|
14
|
+
icon: null;
|
|
15
|
+
iconPosition: string;
|
|
16
|
+
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
17
|
+
clicked: (...args: any[]) => void;
|
|
18
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
|
|
19
|
+
variant: string;
|
|
20
|
+
label: null;
|
|
21
|
+
icon: null;
|
|
22
|
+
iconPosition: string;
|
|
23
|
+
}>>> & {
|
|
24
|
+
onClicked?: ((...args: any[]) => any) | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
label: string | null;
|
|
27
|
+
variant: "primary" | "secondary" | "invisible" | null;
|
|
28
|
+
icon: string | null;
|
|
29
|
+
iconPosition: string;
|
|
30
|
+
}, {}>;
|
|
31
|
+
export default _default;
|
|
32
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
33
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
34
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
35
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
36
|
+
} : {
|
|
37
|
+
type: import('vue').PropType<T[K]>;
|
|
38
|
+
required: true;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
type __VLS_WithDefaults<P, D> = {
|
|
42
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
43
|
+
default: D[K];
|
|
44
|
+
}> : P[K];
|
|
45
|
+
};
|
|
46
|
+
type __VLS_Prettify<T> = {
|
|
47
|
+
[K in keyof T]: T[K];
|
|
48
|
+
} & {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as AlpineButton } from './AlpineButton.vue';
|
|
2
|
+
import { VariantProps } from 'class-variance-authority';
|
|
3
|
+
|
|
4
|
+
export declare const buttonVariants: (props?: ({
|
|
5
|
+
variant?: "primary" | "secondary" | "invisible" | null | undefined;
|
|
6
|
+
status?: "default" | "loading" | "disabled" | null | undefined;
|
|
7
|
+
} & import('class-variance-authority/dist/types').ClassProp) | undefined) => string;
|
|
8
|
+
export type ButtonVariants = VariantProps<typeof buttonVariants>;
|
|
9
|
+
export default AlpineButton;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { IconVariants } from '.';
|
|
2
|
+
|
|
3
|
+
export interface Props {
|
|
4
|
+
size?: IconVariants["size"];
|
|
5
|
+
icon: string;
|
|
6
|
+
hoverIcon?: string | null;
|
|
7
|
+
color?: string;
|
|
8
|
+
hoverColor?: string | null;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
|
|
11
|
+
size: string;
|
|
12
|
+
hoverIcon: null;
|
|
13
|
+
color: string;
|
|
14
|
+
hoverColor: null;
|
|
15
|
+
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
|
|
16
|
+
size: string;
|
|
17
|
+
hoverIcon: null;
|
|
18
|
+
color: string;
|
|
19
|
+
hoverColor: null;
|
|
20
|
+
}>>>, {
|
|
21
|
+
size: "sm" | "md" | "lg" | null;
|
|
22
|
+
hoverIcon: string | null;
|
|
23
|
+
color: string;
|
|
24
|
+
hoverColor: string | null;
|
|
25
|
+
}, {}>;
|
|
26
|
+
export default _default;
|
|
27
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
28
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
29
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
30
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
31
|
+
} : {
|
|
32
|
+
type: import('vue').PropType<T[K]>;
|
|
33
|
+
required: true;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
type __VLS_WithDefaults<P, D> = {
|
|
37
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
38
|
+
default: D[K];
|
|
39
|
+
}> : P[K];
|
|
40
|
+
};
|
|
41
|
+
type __VLS_Prettify<T> = {
|
|
42
|
+
[K in keyof T]: T[K];
|
|
43
|
+
} & {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { default as AlpineIcon } from './AlpineIcon.vue';
|
|
2
|
+
import { VariantProps } from 'class-variance-authority';
|
|
3
|
+
|
|
4
|
+
export declare const iconVariants: (props?: ({
|
|
5
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
6
|
+
} & import('class-variance-authority/dist/types').ClassProp) | undefined) => string;
|
|
7
|
+
export type IconVariants = VariantProps<typeof iconVariants>;
|
|
8
|
+
export default AlpineIcon;
|
package/dist/index.d.ts
ADDED
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { defineComponent as x, ref as j, computed as f, openBlock as c, createElementBlock as h, normalizeClass as V, unref as z, createBlock as g, createCommentVNode as y, toDisplayString as L } from "vue";
|
|
2
|
+
function A(t) {
|
|
3
|
+
var n, e, a = "";
|
|
4
|
+
if (typeof t == "string" || typeof t == "number")
|
|
5
|
+
a += t;
|
|
6
|
+
else if (typeof t == "object")
|
|
7
|
+
if (Array.isArray(t))
|
|
8
|
+
for (n = 0; n < t.length; n++)
|
|
9
|
+
t[n] && (e = A(t[n])) && (a && (a += " "), a += e);
|
|
10
|
+
else
|
|
11
|
+
for (n in t)
|
|
12
|
+
t[n] && (a && (a += " "), a += n);
|
|
13
|
+
return a;
|
|
14
|
+
}
|
|
15
|
+
function P() {
|
|
16
|
+
for (var t, n, e = 0, a = ""; e < arguments.length; )
|
|
17
|
+
(t = arguments[e++]) && (n = A(t)) && (a && (a += " "), a += n);
|
|
18
|
+
return a;
|
|
19
|
+
}
|
|
20
|
+
const C = (t) => typeof t == "boolean" ? "".concat(t) : t === 0 ? "0" : t, w = P, B = (t, n) => (e) => {
|
|
21
|
+
var a;
|
|
22
|
+
if ((n == null ? void 0 : n.variants) == null)
|
|
23
|
+
return w(t, e == null ? void 0 : e.class, e == null ? void 0 : e.className);
|
|
24
|
+
const { variants: l, defaultVariants: s } = n, r = Object.keys(l).map((i) => {
|
|
25
|
+
const u = e == null ? void 0 : e[i], v = s == null ? void 0 : s[i];
|
|
26
|
+
if (u === null)
|
|
27
|
+
return null;
|
|
28
|
+
const d = C(u) || C(v);
|
|
29
|
+
return l[i][d];
|
|
30
|
+
}), o = e && Object.entries(e).reduce((i, u) => {
|
|
31
|
+
let [v, d] = u;
|
|
32
|
+
return d === void 0 || (i[v] = d), i;
|
|
33
|
+
}, {}), p = n == null || (a = n.compoundVariants) === null || a === void 0 ? void 0 : a.reduce((i, u) => {
|
|
34
|
+
let { class: v, className: d, ...I } = u;
|
|
35
|
+
return Object.entries(I).every((N) => {
|
|
36
|
+
let [k, m] = N;
|
|
37
|
+
return Array.isArray(m) ? m.includes({
|
|
38
|
+
...s,
|
|
39
|
+
...o
|
|
40
|
+
}[k]) : {
|
|
41
|
+
...s,
|
|
42
|
+
...o
|
|
43
|
+
}[k] === m;
|
|
44
|
+
}) ? [
|
|
45
|
+
...i,
|
|
46
|
+
v,
|
|
47
|
+
d
|
|
48
|
+
] : i;
|
|
49
|
+
}, []);
|
|
50
|
+
return w(t, r, p, e == null ? void 0 : e.class, e == null ? void 0 : e.className);
|
|
51
|
+
}, D = B(
|
|
52
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-base font-medium transition-all ease-out duration-200 active:shadow-inner-md outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-brand-500 focus-visible:outline-offset-2",
|
|
53
|
+
{
|
|
54
|
+
variants: {
|
|
55
|
+
variant: {
|
|
56
|
+
primary: "text-white bg-brand-500 hover:bg-brand-600 h-9 px-4 gap-2 hover:shadow",
|
|
57
|
+
secondary: "text-gray-900 bg-gray-50 hover:bg-gray-100 border border-gray-300 h-9 px-4 gap-2 hover:shadow",
|
|
58
|
+
invisible: "text-gray-900 hover:bg-gray-200 p-2 gap-2"
|
|
59
|
+
},
|
|
60
|
+
status: {
|
|
61
|
+
default: "",
|
|
62
|
+
loading: "cursor-wait hover:shadow-none active:shadow-none",
|
|
63
|
+
disabled: "cursor-not-allowed hover:shadow-none active:shadow-none"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
compoundVariants: [
|
|
67
|
+
{
|
|
68
|
+
variant: "primary",
|
|
69
|
+
status: ["loading", "disabled"],
|
|
70
|
+
class: "!bg-gray-200 hover:!bg-gray-200 !text-gray-500"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
variant: "secondary",
|
|
74
|
+
status: ["loading", "disabled"],
|
|
75
|
+
class: "!text-gray-400 hover:!bg-gray-50"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
variant: "invisible",
|
|
79
|
+
status: ["loading", "disabled"],
|
|
80
|
+
class: "!text-gray-400 hover:!bg-gray-100"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
defaultVariants: {
|
|
84
|
+
variant: "primary",
|
|
85
|
+
status: "default"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
), O = B(
|
|
89
|
+
"",
|
|
90
|
+
{
|
|
91
|
+
variants: {
|
|
92
|
+
size: {
|
|
93
|
+
sm: "text-[20px]",
|
|
94
|
+
md: "text-[24px]",
|
|
95
|
+
lg: "text-[28px]"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
defaultVariants: { size: "md" }
|
|
99
|
+
}
|
|
100
|
+
), b = /* @__PURE__ */ x({
|
|
101
|
+
__name: "AlpineIcon",
|
|
102
|
+
props: {
|
|
103
|
+
size: { default: "md" },
|
|
104
|
+
icon: {},
|
|
105
|
+
hoverIcon: { default: null },
|
|
106
|
+
color: { default: "text-neutral-900" },
|
|
107
|
+
hoverColor: { default: null }
|
|
108
|
+
},
|
|
109
|
+
setup(t) {
|
|
110
|
+
const n = t, e = j(!1), a = f(() => e.value && n.hoverColor ? n.hoverColor : n.color), l = f(() => e.value && n.hoverIcon ? n.hoverIcon : n.icon);
|
|
111
|
+
return (s, r) => (c(), h("span", {
|
|
112
|
+
class: V([l.value, a.value, z(O)({ size: n.size })]),
|
|
113
|
+
onMouseover: r[0] || (r[0] = (o) => e.value = !0),
|
|
114
|
+
onMouseleave: r[1] || (r[1] = (o) => e.value = !1)
|
|
115
|
+
}, null, 34));
|
|
116
|
+
}
|
|
117
|
+
}), S = {
|
|
118
|
+
key: 2,
|
|
119
|
+
class: "leading-none"
|
|
120
|
+
}, M = /* @__PURE__ */ x({
|
|
121
|
+
__name: "AlpineButton",
|
|
122
|
+
props: {
|
|
123
|
+
variant: { default: "primary" },
|
|
124
|
+
label: { default: null },
|
|
125
|
+
icon: { default: null },
|
|
126
|
+
iconPosition: { default: "left" },
|
|
127
|
+
isLoading: { type: Boolean },
|
|
128
|
+
isDisabled: { type: Boolean }
|
|
129
|
+
},
|
|
130
|
+
emits: ["clicked"],
|
|
131
|
+
setup(t, { emit: n }) {
|
|
132
|
+
const e = t, a = n, l = f(() => e.isLoading ? "loading" : e.isDisabled ? "disabled" : "default"), s = f(() => ({
|
|
133
|
+
variant: e.variant,
|
|
134
|
+
status: l.value
|
|
135
|
+
}));
|
|
136
|
+
function r() {
|
|
137
|
+
e.isLoading || e.isDisabled || a("clicked");
|
|
138
|
+
}
|
|
139
|
+
return (o, p) => (c(), h("button", {
|
|
140
|
+
class: V(z(D)(s.value)),
|
|
141
|
+
onClick: r
|
|
142
|
+
}, [
|
|
143
|
+
o.isLoading ? (c(), g(b, {
|
|
144
|
+
key: 0,
|
|
145
|
+
icon: "i-mdi-loading",
|
|
146
|
+
class: "animate-spin",
|
|
147
|
+
size: "sm"
|
|
148
|
+
})) : o.icon && o.iconPosition === "left" ? (c(), g(b, {
|
|
149
|
+
key: 1,
|
|
150
|
+
icon: o.icon,
|
|
151
|
+
size: "sm"
|
|
152
|
+
}, null, 8, ["icon"])) : y("", !0),
|
|
153
|
+
o.label ? (c(), h("span", S, L(o.label), 1)) : y("", !0),
|
|
154
|
+
!o.isLoading && o.icon && o.iconPosition === "right" ? (c(), g(b, {
|
|
155
|
+
key: 3,
|
|
156
|
+
icon: o.icon,
|
|
157
|
+
size: "sm"
|
|
158
|
+
}, null, 8, ["icon"])) : y("", !0)
|
|
159
|
+
], 2));
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
export {
|
|
163
|
+
M as AlpineButton,
|
|
164
|
+
b as AlpineIcon
|
|
165
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(r,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],n):(r=typeof globalThis<"u"?globalThis:r||self,n(r.NeuralyticsAlpineDS={},r.Vue))})(this,function(r,n){"use strict";function g(o){var t,e,a="";if(typeof o=="string"||typeof o=="number")a+=o;else if(typeof o=="object")if(Array.isArray(o))for(t=0;t<o.length;t++)o[t]&&(e=g(o[t]))&&(a&&(a+=" "),a+=e);else for(t in o)o[t]&&(a&&(a+=" "),a+=t);return a}function B(){for(var o,t,e=0,a="";e<arguments.length;)(o=arguments[e++])&&(t=g(o))&&(a&&(a+=" "),a+=t);return a}const b=o=>typeof o=="boolean"?"".concat(o):o===0?"0":o,p=B,h=(o,t)=>e=>{var a;if((t==null?void 0:t.variants)==null)return p(o,e==null?void 0:e.class,e==null?void 0:e.className);const{variants:c,defaultVariants:s}=t,d=Object.keys(c).map(l=>{const u=e==null?void 0:e[l],m=s==null?void 0:s[l];if(u===null)return null;const f=b(u)||b(m);return c[l][f]}),i=e&&Object.entries(e).reduce((l,u)=>{let[m,f]=u;return f===void 0||(l[m]=f),l},{}),k=t==null||(a=t.compoundVariants)===null||a===void 0?void 0:a.reduce((l,u)=>{let{class:m,className:f,...N}=u;return Object.entries(N).every(A=>{let[C,y]=A;return Array.isArray(y)?y.includes({...s,...i}[C]):{...s,...i}[C]===y})?[...l,m,f]:l},[]);return p(o,d,k,e==null?void 0:e.class,e==null?void 0:e.className)},V=h("inline-flex items-center justify-center whitespace-nowrap rounded-lg text-base font-medium transition-all ease-out duration-200 active:shadow-inner-md outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-brand-500 focus-visible:outline-offset-2",{variants:{variant:{primary:"text-white bg-brand-500 hover:bg-brand-600 h-9 px-4 gap-2 hover:shadow",secondary:"text-gray-900 bg-gray-50 hover:bg-gray-100 border border-gray-300 h-9 px-4 gap-2 hover:shadow",invisible:"text-gray-900 hover:bg-gray-200 p-2 gap-2"},status:{default:"",loading:"cursor-wait hover:shadow-none active:shadow-none",disabled:"cursor-not-allowed hover:shadow-none active:shadow-none"}},compoundVariants:[{variant:"primary",status:["loading","disabled"],class:"!bg-gray-200 hover:!bg-gray-200 !text-gray-500"},{variant:"secondary",status:["loading","disabled"],class:"!text-gray-400 hover:!bg-gray-50"},{variant:"invisible",status:["loading","disabled"],class:"!text-gray-400 hover:!bg-gray-100"}],defaultVariants:{variant:"primary",status:"default"}}),w=h("",{variants:{size:{sm:"text-[20px]",md:"text-[24px]",lg:"text-[28px]"}},defaultVariants:{size:"md"}}),v=n.defineComponent({__name:"AlpineIcon",props:{size:{default:"md"},icon:{},hoverIcon:{default:null},color:{default:"text-neutral-900"},hoverColor:{default:null}},setup(o){const t=o,e=n.ref(!1),a=n.computed(()=>e.value&&t.hoverColor?t.hoverColor:t.color),c=n.computed(()=>e.value&&t.hoverIcon?t.hoverIcon:t.icon);return(s,d)=>(n.openBlock(),n.createElementBlock("span",{class:n.normalizeClass([c.value,a.value,n.unref(w)({size:t.size})]),onMouseover:d[0]||(d[0]=i=>e.value=!0),onMouseleave:d[1]||(d[1]=i=>e.value=!1)},null,34))}}),x={key:2,class:"leading-none"},z=n.defineComponent({__name:"AlpineButton",props:{variant:{default:"primary"},label:{default:null},icon:{default:null},iconPosition:{default:"left"},isLoading:{type:Boolean},isDisabled:{type:Boolean}},emits:["clicked"],setup(o,{emit:t}){const e=o,a=t,c=n.computed(()=>e.isLoading?"loading":e.isDisabled?"disabled":"default"),s=n.computed(()=>({variant:e.variant,status:c.value}));function d(){e.isLoading||e.isDisabled||a("clicked")}return(i,k)=>(n.openBlock(),n.createElementBlock("button",{class:n.normalizeClass(n.unref(V)(s.value)),onClick:d},[i.isLoading?(n.openBlock(),n.createBlock(v,{key:0,icon:"i-mdi-loading",class:"animate-spin",size:"sm"})):i.icon&&i.iconPosition==="left"?(n.openBlock(),n.createBlock(v,{key:1,icon:i.icon,size:"sm"},null,8,["icon"])):n.createCommentVNode("",!0),i.label?(n.openBlock(),n.createElementBlock("span",x,n.toDisplayString(i.label),1)):n.createCommentVNode("",!0),!i.isLoading&&i.icon&&i.iconPosition==="right"?(n.openBlock(),n.createBlock(v,{key:3,icon:i.icon,size:"sm"},null,8,["icon"])):n.createCommentVNode("",!0)],2))}});r.AlpineButton=z,r.AlpineIcon=v,Object.defineProperty(r,Symbol.toStringTag,{value:"Module"})});
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e5e5}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#a3a3a3}input::placeholder,textarea::placeholder{opacity:1;color:#a3a3a3}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--color-brand: #fe4e29}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.i-mdi-loading{display:inline-block;width:1em;height:1em;background-color:currentColor;-webkit-mask-image:var(--svg);mask-image:var(--svg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12 4V2A10 10 0 0 0 2 12h2a8 8 0 0 1 8-8'/%3E%3C/svg%3E")}.invisible{visibility:hidden}.inline-flex{display:inline-flex}.h-9{height:2.25rem}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-wait{cursor:wait}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.whitespace-nowrap{white-space:nowrap}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(212 212 212 / var(--tw-border-opacity))}.\!bg-gray-200{--tw-bg-opacity: 1 !important;background-color:rgb(229 229 229 / var(--tw-bg-opacity))!important}.bg-brand-500{background-color:var(--color-brand)}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity))}.p-2{padding:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.text-\[20px\]{font-size:20px}.text-\[24px\]{font-size:24px}.text-\[28px\]{font-size:28px}.text-base{font-size:14px;line-height:20px}.font-medium{font-weight:500}.leading-none{line-height:1}.\!text-gray-400{--tw-text-opacity: 1 !important;color:rgb(163 163 163 / var(--tw-text-opacity))!important}.\!text-gray-500{--tw-text-opacity: 1 !important;color:rgb(115 115 115 / var(--tw-text-opacity))!important}.text-gray-900{--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.outline-none{outline:2px solid transparent;outline-offset:2px}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}html{font-size:16px}.hover\:\!bg-gray-100:hover{--tw-bg-opacity: 1 !important;background-color:rgb(245 245 245 / var(--tw-bg-opacity))!important}.hover\:\!bg-gray-200:hover{--tw-bg-opacity: 1 !important;background-color:rgb(229 229 229 / var(--tw-bg-opacity))!important}.hover\:\!bg-gray-50:hover{--tw-bg-opacity: 1 !important;background-color:rgb(250 250 250 / var(--tw-bg-opacity))!important}.hover\:bg-brand-600:hover{background-color:color-mix(in srgb,var(--color-brand),black 10%)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 229 229 / var(--tw-bg-opacity))}.hover\:shadow:hover{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-none:hover{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-brand-500:focus-visible{outline-color:var(--color-brand)}.active\:shadow-inner-md:active{--tw-shadow: inset 0px 4px 6px rgba(0, 0, 0, .1);--tw-shadow-colored: inset 0px 4px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.active\:shadow-none:active{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}
|