periplo-ui 3.3.1 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Card/Card.js +1 -1
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Input/Input.js +45 -49
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Marquee/Marquee.d.ts +33 -0
- package/dist/components/Marquee/Marquee.js +43 -0
- package/dist/components/Marquee/Marquee.js.map +1 -0
- package/dist/components/Marquee/index.d.ts +1 -0
- package/dist/components/Marquee/index.js +2 -0
- package/dist/components/Marquee/index.js.map +1 -0
- package/dist/components/Separator/Separator.js +1 -5
- package/dist/components/Separator/Separator.js.map +1 -1
- package/dist/components/Textarea/Textarea.d.ts +2 -1
- package/dist/components/Textarea/Textarea.js +32 -16
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Typography/Typography.d.ts +0 -5
- package/dist/components/Typography/Typography.js +22 -16
- package/dist/components/Typography/Typography.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/plugin.js +11 -1
- package/dist/lib/plugin.js.map +1 -1
- package/package.json +1 -1
|
@@ -11,7 +11,7 @@ const Card = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
11
11
|
}
|
|
12
12
|
));
|
|
13
13
|
Card.displayName = "Card";
|
|
14
|
-
const CardMedia = React.forwardRef(({ className, alt, src, ...props }, ref) => /* @__PURE__ */ jsx("img", { alt, src, ref, className: cn("h-full overflow-hidden object-cover", className), ...props }));
|
|
14
|
+
const CardMedia = React.forwardRef(({ className, alt, src, ...props }, ref) => /* @__PURE__ */ jsx("img", { alt, src, ref, className: cn("h-full overflow-hidden object-cover rounded-t-lg", className), ...props }));
|
|
15
15
|
CardMedia.displayName = "CardMedia";
|
|
16
16
|
const CardContent = React.forwardRef(
|
|
17
17
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col gap-2 p-4", className), ...props })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.js","sources":["../../../src/components/Card/Card.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '../../lib/utils'\n\nexport interface CardMediaProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n alt: string\n src: string\n}\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex h-full flex-col justify-between rounded-lg text-card-foreground shadow-sm', className)}\n {...props}\n />\n))\nCard.displayName = 'Card'\n\nconst CardMedia = React.forwardRef<HTMLImageElement, CardMediaProps>(({ className, alt, src, ...props }, ref) => (\n <img alt={alt} src={src} ref={ref} className={cn('h-full overflow-hidden object-cover', className)} {...props} />\n))\nCardMedia.displayName = 'CardMedia'\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => <div ref={ref} className={cn('flex flex-col gap-2 p-4', className)} {...props} />,\n)\nCardContent.displayName = 'CardContent'\n\nexport { Card, CardMedia, CardContent }\n"],"names":[],"mappings":";;;;AASM,MAAA,IAAA,GAAO,MAAM,UAAiE,CAAA,CAAC,EAAE,SAAW,EAAA,GAAG,KAAM,EAAA,EAAG,GAC5G,qBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAG,CAAA,gFAAA,EAAkF,SAAS,CAAA;AAAA,IACxG,GAAG;AAAA;AACN,CACD;AACD,IAAA,CAAK,WAAc,GAAA,MAAA;AAEb,MAAA,SAAA,GAAY,KAAM,CAAA,UAAA,CAA6C,CAAC,EAAE,WAAW,GAAK,EAAA,GAAA,EAAK,GAAG,KAAA,EAAS,EAAA,GAAA,yBACtG,KAAI,EAAA,EAAA,GAAA,EAAU,GAAU,EAAA,GAAA,EAAU,SAAW,EAAA,EAAA,CAAG,
|
|
1
|
+
{"version":3,"file":"Card.js","sources":["../../../src/components/Card/Card.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '../../lib/utils'\n\nexport interface CardMediaProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n alt: string\n src: string\n}\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex h-full flex-col justify-between rounded-lg text-card-foreground shadow-sm', className)}\n {...props}\n />\n))\nCard.displayName = 'Card'\n\nconst CardMedia = React.forwardRef<HTMLImageElement, CardMediaProps>(({ className, alt, src, ...props }, ref) => (\n <img alt={alt} src={src} ref={ref} className={cn('h-full overflow-hidden object-cover rounded-t-lg', className)} {...props} />\n))\nCardMedia.displayName = 'CardMedia'\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => <div ref={ref} className={cn('flex flex-col gap-2 p-4', className)} {...props} />,\n)\nCardContent.displayName = 'CardContent'\n\nexport { Card, CardMedia, CardContent }\n"],"names":[],"mappings":";;;;AASM,MAAA,IAAA,GAAO,MAAM,UAAiE,CAAA,CAAC,EAAE,SAAW,EAAA,GAAG,KAAM,EAAA,EAAG,GAC5G,qBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAG,CAAA,gFAAA,EAAkF,SAAS,CAAA;AAAA,IACxG,GAAG;AAAA;AACN,CACD;AACD,IAAA,CAAK,WAAc,GAAA,MAAA;AAEb,MAAA,SAAA,GAAY,KAAM,CAAA,UAAA,CAA6C,CAAC,EAAE,WAAW,GAAK,EAAA,GAAA,EAAK,GAAG,KAAA,EAAS,EAAA,GAAA,yBACtG,KAAI,EAAA,EAAA,GAAA,EAAU,GAAU,EAAA,GAAA,EAAU,SAAW,EAAA,EAAA,CAAG,oDAAoD,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAC7H;AACD,SAAA,CAAU,WAAc,GAAA,WAAA;AAExB,MAAM,cAAc,KAAM,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAQ,qBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,GAAA,EAAU,WAAW,EAAG,CAAA,yBAAA,EAA2B,SAAS,CAAA,EAAI,GAAG,KAAO,EAAA;AACnH;AACA,WAAA,CAAY,WAAc,GAAA,aAAA;;;;"}
|
|
@@ -5,7 +5,7 @@ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement>
|
|
|
5
5
|
endContent?: React.ReactElement;
|
|
6
6
|
groupText?: string;
|
|
7
7
|
disabled?: boolean;
|
|
8
|
-
error?: boolean;
|
|
8
|
+
error?: boolean | string;
|
|
9
9
|
}
|
|
10
10
|
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
11
11
|
export { Input };
|
|
@@ -10,65 +10,61 @@ const Input = React.forwardRef(
|
|
|
10
10
|
const toggleType = () => {
|
|
11
11
|
setType(type === "password" ? "text" : "password");
|
|
12
12
|
};
|
|
13
|
-
const
|
|
13
|
+
const renderPasswordEye = () => {
|
|
14
14
|
return /* @__PURE__ */ jsx(
|
|
15
15
|
"button",
|
|
16
16
|
{
|
|
17
17
|
type: "button",
|
|
18
|
-
className: "
|
|
18
|
+
className: "flex aspect-square cursor-pointer items-center justify-center rounded-full p-2 transition-colors hover:bg-neutral-50",
|
|
19
19
|
onClick: () => toggleType(),
|
|
20
20
|
children: type === "password" ? /* @__PURE__ */ jsx(EyeSlash, { size: 20, "data-testid": "password-eye-closed" }) : /* @__PURE__ */ jsx(Eye, { size: 20, "data-testid": "password-eye-open" })
|
|
21
21
|
}
|
|
22
22
|
);
|
|
23
23
|
};
|
|
24
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex w-full
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
children: groupText
|
|
32
|
-
}
|
|
33
|
-
),
|
|
34
|
-
/* @__PURE__ */ jsxs(
|
|
35
|
-
"div",
|
|
36
|
-
{
|
|
37
|
-
className: cn(
|
|
38
|
-
"flex h-10 w-full grow-0 items-center rounded-lg border border-gray-300 bg-[#ffffff] px-2 transition-colors focus-within:border-neutral-950",
|
|
39
|
-
groupText && "rounded-none rounded-r-lg",
|
|
40
|
-
disabled && "bg-neutral-50",
|
|
41
|
-
(error ?? props["aria-invalid"]) && "border-error-400 focus-within:border-error-700",
|
|
42
|
-
className
|
|
43
|
-
),
|
|
44
|
-
children: [
|
|
45
|
-
startContent && /* @__PURE__ */ jsx("div", { className: "text-neutral-400", children: startContent }),
|
|
46
|
-
/* @__PURE__ */ jsx(
|
|
47
|
-
"input",
|
|
48
|
-
{
|
|
49
|
-
type,
|
|
50
|
-
className: cn(
|
|
51
|
-
"placeholder:text-muted-foreground w-full grow-0 px-2 placeholder-neutral-500 outline-0 transition-colors file:border-0 file:bg-transparent file:font-medium disabled:cursor-not-allowed disabled:opacity-50"
|
|
52
|
-
),
|
|
53
|
-
ref,
|
|
54
|
-
placeholder,
|
|
55
|
-
disabled,
|
|
56
|
-
...props
|
|
57
|
-
}
|
|
24
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-1", children: [
|
|
25
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full items-center", children: [
|
|
26
|
+
groupText && /* @__PURE__ */ jsx(
|
|
27
|
+
"div",
|
|
28
|
+
{
|
|
29
|
+
className: cn(
|
|
30
|
+
"flex h-10 items-center rounded-l-lg border-y border-l border-neutral-200 bg-neutral-50 pl-4 pr-2 text-neutral-300"
|
|
58
31
|
),
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
32
|
+
children: groupText
|
|
33
|
+
}
|
|
34
|
+
),
|
|
35
|
+
/* @__PURE__ */ jsxs(
|
|
36
|
+
"div",
|
|
37
|
+
{
|
|
38
|
+
className: cn(
|
|
39
|
+
"flex h-10 w-full items-center rounded-lg border border-neutral-200 bg-white px-3 transition-colors focus-within:border-neutral-950",
|
|
40
|
+
groupText && "rounded-l-none",
|
|
41
|
+
disabled && "bg-neutral-50",
|
|
42
|
+
error && "border-error-400 focus-within:border-error-700",
|
|
43
|
+
className
|
|
44
|
+
),
|
|
45
|
+
children: [
|
|
46
|
+
startContent && /* @__PURE__ */ jsx("div", { className: "text-neutral-300", children: startContent }),
|
|
47
|
+
/* @__PURE__ */ jsx(
|
|
48
|
+
"input",
|
|
49
|
+
{
|
|
50
|
+
type,
|
|
51
|
+
className: cn(
|
|
52
|
+
"w-full bg-transparent px-2 outline-0 transition-colors placeholder:text-neutral-300 disabled:cursor-not-allowed disabled:opacity-50"
|
|
53
|
+
),
|
|
54
|
+
ref,
|
|
55
|
+
placeholder,
|
|
56
|
+
disabled,
|
|
57
|
+
...props
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
error && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(WarningCircle, { "data-testid": "exclaim-icon", className: "text-error-500", size: 18 }) }),
|
|
61
|
+
isHtmlTypePassword && renderPasswordEye(),
|
|
62
|
+
endContent && !error && !isHtmlTypePassword && /* @__PURE__ */ jsx("div", { className: "text-neutral-300", children: endContent })
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
] }),
|
|
67
|
+
typeof error === "string" && /* @__PURE__ */ jsx("span", { className: "text-sm text-error-500", children: error })
|
|
72
68
|
] });
|
|
73
69
|
}
|
|
74
70
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import { Eye, EyeSlash, WarningCircle } from '@phosphor-icons/react/dist/ssr'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n htmlType?: 'text' | 'tel' | 'email' | 'number' | 'password' | 'url'\n startContent?: React.ReactElement\n endContent?: React.ReactElement\n groupText?: string\n disabled?: boolean\n error?: boolean\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n { className, htmlType = 'text', placeholder, startContent, endContent, groupText, disabled, error, ...props },\n ref,\n ) => {\n const isHtmlTypePassword = htmlType === 'password'\n const [type, setType] = React.useState(htmlType)\n\n const toggleType = () => {\n setType(type === 'password' ? 'text' : 'password')\n }\n\n const
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import { Eye, EyeSlash, WarningCircle } from '@phosphor-icons/react/dist/ssr'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n htmlType?: 'text' | 'tel' | 'email' | 'number' | 'password' | 'url'\n startContent?: React.ReactElement\n endContent?: React.ReactElement\n groupText?: string\n disabled?: boolean\n error?: boolean | string\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n { className, htmlType = 'text', placeholder, startContent, endContent, groupText, disabled, error, ...props },\n ref,\n ) => {\n const isHtmlTypePassword = htmlType === 'password'\n const [type, setType] = React.useState(htmlType)\n\n const toggleType = () => {\n setType(type === 'password' ? 'text' : 'password')\n }\n\n const renderPasswordEye = () => {\n return (\n <button\n type=\"button\"\n className=\"flex aspect-square cursor-pointer items-center justify-center rounded-full p-2 transition-colors hover:bg-neutral-50\"\n onClick={() => toggleType()}\n >\n {type === 'password' ? (\n <EyeSlash size={20} data-testid=\"password-eye-closed\" />\n ) : (\n <Eye size={20} data-testid=\"password-eye-open\" />\n )}\n </button>\n )\n }\n\n return (\n <div className=\"flex w-full flex-col gap-1\">\n <div className=\"flex w-full items-center\">\n {groupText && (\n <div\n className={cn(\n 'flex h-10 items-center rounded-l-lg border-y border-l border-neutral-200 bg-neutral-50 pl-4 pr-2 text-neutral-300',\n )}\n >\n {groupText}\n </div>\n )}\n <div\n className={cn(\n 'flex h-10 w-full items-center rounded-lg border border-neutral-200 bg-white px-3 transition-colors focus-within:border-neutral-950',\n groupText && 'rounded-l-none',\n disabled && 'bg-neutral-50',\n error && 'border-error-400 focus-within:border-error-700',\n className,\n )}\n >\n {startContent && <div className=\"text-neutral-300\">{startContent}</div>}\n <input\n type={type}\n className={cn(\n 'w-full bg-transparent px-2 outline-0 transition-colors placeholder:text-neutral-300 disabled:cursor-not-allowed disabled:opacity-50',\n )}\n ref={ref}\n placeholder={placeholder}\n disabled={disabled}\n {...props}\n />\n\n {error && (\n <div>\n <WarningCircle data-testid=\"exclaim-icon\" className=\"text-error-500\" size={18} />\n </div>\n )}\n {isHtmlTypePassword && renderPasswordEye()}\n {endContent && !error && !isHtmlTypePassword && <div className=\"text-neutral-300\">{endContent}</div>}\n </div>\n </div>\n {typeof error === 'string' && <span className=\"text-sm text-error-500\">{error}</span>}\n </div>\n )\n },\n)\nInput.displayName = 'Input'\n\nexport { Input }\n"],"names":[],"mappings":";;;;;AAcA,MAAM,QAAQ,KAAM,CAAA,UAAA;AAAA,EAClB,CACE,EAAE,SAAW,EAAA,QAAA,GAAW,QAAQ,WAAa,EAAA,YAAA,EAAc,UAAY,EAAA,SAAA,EAAW,QAAU,EAAA,KAAA,EAAO,GAAG,KAAA,IACtG,GACG,KAAA;AACH,IAAA,MAAM,qBAAqB,QAAa,KAAA,UAAA;AACxC,IAAA,MAAM,CAAC,IAAM,EAAA,OAAO,CAAI,GAAA,KAAA,CAAM,SAAS,QAAQ,CAAA;AAE/C,IAAA,MAAM,aAAa,MAAM;AACvB,MAAQ,OAAA,CAAA,IAAA,KAAS,UAAa,GAAA,MAAA,GAAS,UAAU,CAAA;AAAA,KACnD;AAEA,IAAA,MAAM,oBAAoB,MAAM;AAC9B,MACE,uBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,QAAA;AAAA,UACL,SAAU,EAAA,sHAAA;AAAA,UACV,OAAA,EAAS,MAAM,UAAW,EAAA;AAAA,UAEzB,QAAS,EAAA,IAAA,KAAA,UAAA,mBACP,GAAA,CAAA,QAAA,EAAA,EAAS,MAAM,EAAI,EAAA,aAAA,EAAY,qBAAsB,EAAA,CAAA,mBAErD,GAAA,CAAA,GAAA,EAAA,EAAI,IAAM,EAAA,EAAA,EAAI,eAAY,mBAAoB,EAAA;AAAA;AAAA,OAEnD;AAAA,KAEJ;AAEA,IACE,uBAAA,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,4BACb,EAAA,QAAA,EAAA;AAAA,sBAAC,IAAA,CAAA,KAAA,EAAA,EAAI,WAAU,0BACZ,EAAA,QAAA,EAAA;AAAA,QACC,SAAA,oBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAW,EAAA,EAAA;AAAA,cACT;AAAA,aACF;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBAEF,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAW,EAAA,EAAA;AAAA,cACT,oIAAA;AAAA,cACA,SAAa,IAAA,gBAAA;AAAA,cACb,QAAY,IAAA,eAAA;AAAA,cACZ,KAAS,IAAA,gDAAA;AAAA,cACT;AAAA,aACF;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,YAAA,oBAAiB,GAAA,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,kBAAA,EAAoB,QAAa,EAAA,YAAA,EAAA,CAAA;AAAA,8BACjE,GAAA;AAAA,gBAAC,OAAA;AAAA,gBAAA;AAAA,kBACC,IAAA;AAAA,kBACA,SAAW,EAAA,EAAA;AAAA,oBACT;AAAA,mBACF;AAAA,kBACA,GAAA;AAAA,kBACA,WAAA;AAAA,kBACA,QAAA;AAAA,kBACC,GAAG;AAAA;AAAA,eACN;AAAA,cAEC,KAAA,oBACE,GAAA,CAAA,KAAA,EAAA,EACC,QAAC,kBAAA,GAAA,CAAA,aAAA,EAAA,EAAc,aAAY,EAAA,cAAA,EAAe,SAAU,EAAA,gBAAA,EAAiB,IAAM,EAAA,EAAA,EAAI,CACjF,EAAA,CAAA;AAAA,cAED,sBAAsB,iBAAkB,EAAA;AAAA,cACxC,UAAA,IAAc,CAAC,KAAS,IAAA,CAAC,sCAAuB,GAAA,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,kBAAA,EAAoB,QAAW,EAAA,UAAA,EAAA;AAAA;AAAA;AAAA;AAChG,OACF,EAAA,CAAA;AAAA,MACC,OAAO,KAAU,KAAA,QAAA,wBAAa,MAAK,EAAA,EAAA,SAAA,EAAU,0BAA0B,QAAM,EAAA,KAAA,EAAA;AAAA,KAChF,EAAA,CAAA;AAAA;AAGN;AACA,KAAA,CAAM,WAAc,GAAA,OAAA;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
interface MarqueeProps extends ComponentPropsWithoutRef<"div"> {
|
|
3
|
+
/**
|
|
4
|
+
* Optional CSS class name to apply custom styles
|
|
5
|
+
*/
|
|
6
|
+
className?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Whether to reverse the animation direction
|
|
9
|
+
* @default false
|
|
10
|
+
*/
|
|
11
|
+
reverse?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Whether to pause the animation on hover
|
|
14
|
+
* @default false
|
|
15
|
+
*/
|
|
16
|
+
pauseOnHover?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Content to be displayed in the marquee
|
|
19
|
+
*/
|
|
20
|
+
children: React.ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Whether to animate vertically instead of horizontally
|
|
23
|
+
* @default false
|
|
24
|
+
*/
|
|
25
|
+
vertical?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Number of times to repeat the content
|
|
28
|
+
* @default 4
|
|
29
|
+
*/
|
|
30
|
+
repeat?: number;
|
|
31
|
+
}
|
|
32
|
+
export declare function Marquee({ className, reverse, pauseOnHover, children, vertical, repeat, ...props }: MarqueeProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { cn } from '../../lib/utils.js';
|
|
3
|
+
|
|
4
|
+
function Marquee({
|
|
5
|
+
className,
|
|
6
|
+
reverse = false,
|
|
7
|
+
pauseOnHover = false,
|
|
8
|
+
children,
|
|
9
|
+
vertical = false,
|
|
10
|
+
repeat = 4,
|
|
11
|
+
...props
|
|
12
|
+
}) {
|
|
13
|
+
return /* @__PURE__ */ jsx(
|
|
14
|
+
"div",
|
|
15
|
+
{
|
|
16
|
+
...props,
|
|
17
|
+
className: cn(
|
|
18
|
+
"group flex overflow-hidden p-2 [--duration:60s] [--gap:96px] [gap:var(--gap)]",
|
|
19
|
+
{
|
|
20
|
+
"flex-row": !vertical,
|
|
21
|
+
"flex-col": vertical
|
|
22
|
+
},
|
|
23
|
+
className
|
|
24
|
+
),
|
|
25
|
+
children: Array(repeat).fill(0).map((_, i) => /* @__PURE__ */ jsx(
|
|
26
|
+
"div",
|
|
27
|
+
{
|
|
28
|
+
className: cn("flex items-center shrink-0 justify-around [gap:var(--gap)]", {
|
|
29
|
+
"animate-marquee flex-row": !vertical,
|
|
30
|
+
"animate-marquee-vertical flex-col": vertical,
|
|
31
|
+
"group-hover:[animation-play-state:paused]": pauseOnHover,
|
|
32
|
+
"[animation-direction:reverse]": reverse
|
|
33
|
+
}),
|
|
34
|
+
children
|
|
35
|
+
},
|
|
36
|
+
i
|
|
37
|
+
))
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export { Marquee };
|
|
43
|
+
//# sourceMappingURL=Marquee.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Marquee.js","sources":["../../../src/components/Marquee/Marquee.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport { ComponentPropsWithoutRef } from \"react\";\n\ninterface MarqueeProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Optional CSS class name to apply custom styles\n */\n className?: string;\n /**\n * Whether to reverse the animation direction\n * @default false\n */\n reverse?: boolean;\n /**\n * Whether to pause the animation on hover\n * @default false\n */\n pauseOnHover?: boolean;\n /**\n * Content to be displayed in the marquee\n */\n children: React.ReactNode;\n /**\n * Whether to animate vertically instead of horizontally\n * @default false\n */\n vertical?: boolean;\n /**\n * Number of times to repeat the content\n * @default 4\n */\n repeat?: number;\n}\n\nexport function Marquee({\n className,\n reverse = false,\n pauseOnHover = false,\n children,\n vertical = false,\n repeat = 4,\n ...props\n}: MarqueeProps) {\n return (\n <div\n {...props}\n className={cn(\n \"group flex overflow-hidden p-2 [--duration:60s] [--gap:96px] [gap:var(--gap)]\",\n {\n \"flex-row\": !vertical,\n \"flex-col\": vertical,\n },\n className,\n )}\n >\n {Array(repeat)\n .fill(0)\n .map((_, i) => (\n <div\n key={i}\n className={cn(\"flex items-center shrink-0 justify-around [gap:var(--gap)]\", {\n \"animate-marquee flex-row\": !vertical,\n \"animate-marquee-vertical flex-col\": vertical,\n \"group-hover:[animation-play-state:paused]\": pauseOnHover,\n \"[animation-direction:reverse]\": reverse,\n })}\n >\n {children}\n </div>\n ))}\n </div>\n );\n}\n"],"names":[],"mappings":";;;AAkCO,SAAS,OAAQ,CAAA;AAAA,EACtB,SAAA;AAAA,EACA,OAAU,GAAA,KAAA;AAAA,EACV,YAAe,GAAA,KAAA;AAAA,EACf,QAAA;AAAA,EACA,QAAW,GAAA,KAAA;AAAA,EACX,MAAS,GAAA,CAAA;AAAA,EACT,GAAG;AACL,CAAiB,EAAA;AACf,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAW,EAAA,EAAA;AAAA,QACT,+EAAA;AAAA,QACA;AAAA,UACE,YAAY,CAAC,QAAA;AAAA,UACb,UAAY,EAAA;AAAA,SACd;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,KAAA,CAAM,MAAM,CACV,CAAA,IAAA,CAAK,CAAC,CACN,CAAA,GAAA,CAAI,CAAC,CAAA,EAAG,CACP,qBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEC,SAAA,EAAW,GAAG,4DAA8D,EAAA;AAAA,YAC1E,4BAA4B,CAAC,QAAA;AAAA,YAC7B,mCAAqC,EAAA,QAAA;AAAA,YACrC,2CAA6C,EAAA,YAAA;AAAA,YAC7C,+BAAiC,EAAA;AAAA,WAClC,CAAA;AAAA,UAEA;AAAA,SAAA;AAAA,QARI;AAAA,OAUR;AAAA;AAAA,GACL;AAEJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Marquee';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -11,11 +11,7 @@ const Separator = React.forwardRef(
|
|
|
11
11
|
ref,
|
|
12
12
|
decorative,
|
|
13
13
|
orientation,
|
|
14
|
-
className: cn(
|
|
15
|
-
"shrink-0 bg-neutral-100",
|
|
16
|
-
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
|
|
17
|
-
className
|
|
18
|
-
),
|
|
14
|
+
className: cn("shrink-0 bg-neutral-100", orientation === "horizontal" ? "h-px w-full" : "h-full w-px", className),
|
|
19
15
|
...props
|
|
20
16
|
}
|
|
21
17
|
)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Separator.js","sources":["../../../src/components/Separator/Separator.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\n\nimport { cn } from '@/lib/utils'\n\ninterface SeparatorProps extends React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {\n /** The orientation of the separator.\n * @default horizontal\n */\n orientation?: 'horizontal' | 'vertical'\n /** Whether the separator is decorative or semantic. Decorative separators are hidden from screen readers.\n * @default true\n */\n decorative?: boolean\n /** Change the default rendered element for the one passed as a child, merging their props and behavior. */\n asChild?: boolean\n}\n\nconst Separator = React.forwardRef<React.ElementRef<typeof SeparatorPrimitive.Root>, SeparatorProps>(\n ({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(
|
|
1
|
+
{"version":3,"file":"Separator.js","sources":["../../../src/components/Separator/Separator.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\n\nimport { cn } from '@/lib/utils'\n\ninterface SeparatorProps extends React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {\n /** The orientation of the separator.\n * @default horizontal\n */\n orientation?: 'horizontal' | 'vertical'\n /** Whether the separator is decorative or semantic. Decorative separators are hidden from screen readers.\n * @default true\n */\n decorative?: boolean\n /** Change the default rendered element for the one passed as a child, merging their props and behavior. */\n asChild?: boolean\n}\n\nconst Separator = React.forwardRef<React.ElementRef<typeof SeparatorPrimitive.Root>, SeparatorProps>(\n ({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn('shrink-0 bg-neutral-100', orientation === 'horizontal' ? 'h-px w-full' : 'h-full w-px', className)}\n {...props}\n />\n ),\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\nexport type { SeparatorProps }\n"],"names":[],"mappings":";;;;;;AAoBA;AAAwB;AAEpB;AAAoB;AAAnB;AACC;AACA;AACA;AACgH;AAC5G;AAAA;AAGV;AACA;;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
3
3
|
disabled?: boolean;
|
|
4
|
-
error?: boolean;
|
|
4
|
+
error?: boolean | string;
|
|
5
|
+
resize?: boolean;
|
|
5
6
|
}
|
|
6
7
|
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
7
8
|
export { Textarea };
|
|
@@ -1,23 +1,39 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { WarningCircle } from '@phosphor-icons/react/dist/ssr';
|
|
3
4
|
import { cn } from '../../lib/utils.js';
|
|
4
5
|
|
|
5
6
|
const Textarea = React.forwardRef(
|
|
6
|
-
({ className, disabled, error, ...props }, ref) => {
|
|
7
|
-
return /* @__PURE__ */
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
({ className, disabled, error, resize = false, ...props }, ref) => {
|
|
8
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-1", children: [
|
|
9
|
+
/* @__PURE__ */ jsx("div", { className: "flex w-full items-start", children: /* @__PURE__ */ jsxs(
|
|
10
|
+
"div",
|
|
11
|
+
{
|
|
12
|
+
className: cn(
|
|
13
|
+
"relative flex w-full rounded-lg border border-neutral-200 bg-white transition-colors focus-within:border-neutral-950",
|
|
14
|
+
disabled && "bg-neutral-50",
|
|
15
|
+
error && "border-error-400 focus-within:border-error-700",
|
|
16
|
+
className
|
|
17
|
+
),
|
|
18
|
+
children: [
|
|
19
|
+
/* @__PURE__ */ jsx(
|
|
20
|
+
"textarea",
|
|
21
|
+
{
|
|
22
|
+
className: cn(
|
|
23
|
+
"min-h-[60px] w-full rounded-lg bg-transparent p-3 pr-8 outline-0 transition-colors placeholder:text-neutral-300 disabled:cursor-not-allowed disabled:opacity-50",
|
|
24
|
+
!resize && "resize-none"
|
|
25
|
+
),
|
|
26
|
+
ref,
|
|
27
|
+
disabled,
|
|
28
|
+
...props
|
|
29
|
+
}
|
|
30
|
+
),
|
|
31
|
+
error && /* @__PURE__ */ jsx("div", { className: "absolute right-3 top-3", children: /* @__PURE__ */ jsx(WarningCircle, { "data-testid": "exclaim-icon", className: "text-error-500", size: 18 }) })
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
) }),
|
|
35
|
+
typeof error === "string" && /* @__PURE__ */ jsx("span", { className: "text-sm text-error-500", children: error })
|
|
36
|
+
] });
|
|
21
37
|
}
|
|
22
38
|
);
|
|
23
39
|
Textarea.displayName = "Textarea";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.js","sources":["../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import * as React from 'react'\
|
|
1
|
+
{"version":3,"file":"Textarea.js","sources":["../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import * as React from 'react'\nimport { WarningCircle } from '@phosphor-icons/react/dist/ssr'\nimport { cn } from '@/lib/utils'\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n disabled?: boolean\n error?: boolean | string\n resize?: boolean\n}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, disabled, error, resize = false, ...props }, ref) => {\n return (\n <div className=\"flex w-full flex-col gap-1\">\n <div className=\"flex w-full items-start\">\n <div\n className={cn(\n 'relative flex w-full rounded-lg border border-neutral-200 bg-white transition-colors focus-within:border-neutral-950',\n disabled && 'bg-neutral-50',\n error && 'border-error-400 focus-within:border-error-700',\n className,\n )}\n >\n <textarea\n className={cn(\n 'min-h-[60px] w-full rounded-lg bg-transparent p-3 pr-8 outline-0 transition-colors placeholder:text-neutral-300 disabled:cursor-not-allowed disabled:opacity-50',\n !resize && 'resize-none',\n )}\n ref={ref}\n disabled={disabled}\n {...props}\n />\n {error && (\n <div className=\"absolute right-3 top-3\">\n <WarningCircle data-testid=\"exclaim-icon\" className=\"text-error-500\" size={18} />\n </div>\n )}\n </div>\n </div>\n {typeof error === 'string' && <span className=\"text-sm text-error-500\">{error}</span>}\n </div>\n )\n },\n)\nTextarea.displayName = 'Textarea'\n\nexport { Textarea }\n"],"names":[],"mappings":";;;;;AAUA,MAAM,WAAW,KAAM,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,QAAU,EAAA,KAAA,EAAO,SAAS,KAAO,EAAA,GAAG,KAAM,EAAA,EAAG,GAAQ,KAAA;AACjE,IACE,uBAAA,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,4BACb,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,KAAA,EAAA,EAAI,WAAU,yBACb,EAAA,QAAA,kBAAA,IAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAW,EAAA,EAAA;AAAA,YACT,sHAAA;AAAA,YACA,QAAY,IAAA,eAAA;AAAA,YACZ,KAAS,IAAA,gDAAA;AAAA,YACT;AAAA,WACF;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,SAAW,EAAA,EAAA;AAAA,kBACT,iKAAA;AAAA,kBACA,CAAC,MAAU,IAAA;AAAA,iBACb;AAAA,gBACA,GAAA;AAAA,gBACA,QAAA;AAAA,gBACC,GAAG;AAAA;AAAA,aACN;AAAA,YACC,KACC,oBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,wBACb,EAAA,QAAA,kBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,aAAA,EAAY,cAAe,EAAA,SAAA,EAAU,gBAAiB,EAAA,IAAA,EAAM,IAAI,CACjF,EAAA;AAAA;AAAA;AAAA,OAGN,EAAA,CAAA;AAAA,MACC,OAAO,KAAU,KAAA,QAAA,wBAAa,MAAK,EAAA,EAAA,SAAA,EAAU,0BAA0B,QAAM,EAAA,KAAA,EAAA;AAAA,KAChF,EAAA,CAAA;AAAA;AAGN;AACA,QAAA,CAAS,WAAc,GAAA,UAAA;;;;"}
|
|
@@ -15,17 +15,12 @@ export interface TypographyProps extends React.BaseHTMLAttributes<HTMLParagraphE
|
|
|
15
15
|
color?: 'neutral' | 'primary' | 'secondary' | 'inverse' | 'accent' | 'success' | 'warning' | 'error';
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
* Typography component that implements the IATI design system
|
|
19
|
-
*
|
|
20
18
|
* Usage:
|
|
21
19
|
* ```tsx
|
|
22
|
-
* // Display text with Montserrat (default)
|
|
23
20
|
* <Typography variant="display-lg" weight="bold">Large Display</Typography>
|
|
24
21
|
*
|
|
25
|
-
* // Headline with Open Sans
|
|
26
22
|
* <Typography variant="headline-md" family="opensans" component="h2">Section Header</Typography>
|
|
27
23
|
*
|
|
28
|
-
* // Body text
|
|
29
24
|
* <Typography variant="body-md">Regular paragraph text</Typography>
|
|
30
25
|
* ```
|
|
31
26
|
*/
|
|
@@ -10,58 +10,65 @@ const typographyVariants = cva("scroll-m-20 tracking-tight", {
|
|
|
10
10
|
"display-lg": [
|
|
11
11
|
"text-[49px] md:text-[53px] lg:text-[57px]",
|
|
12
12
|
"leading-[56px] md:leading-[60px] lg:leading-[64px]",
|
|
13
|
-
"-tracking-[0.14px]"
|
|
13
|
+
"-tracking-[0.14px]",
|
|
14
|
+
"font-montserrat"
|
|
14
15
|
].join(" "),
|
|
15
16
|
// Large headers or section titles
|
|
16
17
|
"display-md": [
|
|
17
18
|
"text-[41px] md:text-[43px] lg:text-[45px]",
|
|
18
|
-
"leading-[48px] md:leading-[50px] lg:leading-[52px]"
|
|
19
|
+
"leading-[48px] md:leading-[50px] lg:leading-[52px]",
|
|
20
|
+
"font-montserrat"
|
|
19
21
|
].join(" "),
|
|
20
22
|
// Medium-sized prominent headers
|
|
21
23
|
"display-sm": [
|
|
22
24
|
"text-[32px] md:text-[34px] lg:text-[36px]",
|
|
23
|
-
"leading-[40px] md:leading-[42px] lg:leading-[44px]"
|
|
25
|
+
"leading-[40px] md:leading-[42px] lg:leading-[44px]",
|
|
26
|
+
"font-montserrat"
|
|
24
27
|
].join(" "),
|
|
25
28
|
// Smaller display text for highlighted elements
|
|
26
29
|
// Headline family - Used for article and section headers
|
|
27
30
|
"headline-lg": [
|
|
28
31
|
"text-[28px] md:text-[30px] lg:text-[32px]",
|
|
29
|
-
"leading-[36px] md:leading-[38px] lg:leading-[40px]"
|
|
32
|
+
"leading-[36px] md:leading-[38px] lg:leading-[40px]",
|
|
33
|
+
"font-montserrat"
|
|
30
34
|
].join(" "),
|
|
31
35
|
// Primary article headers
|
|
32
36
|
"headline-md": [
|
|
33
37
|
"text-[24px] md:text-[26px] lg:text-[28px]",
|
|
34
|
-
"leading-[32px] md:leading-[34px] lg:leading-[36px]"
|
|
38
|
+
"leading-[32px] md:leading-[34px] lg:leading-[36px]",
|
|
39
|
+
"font-montserrat"
|
|
35
40
|
].join(" "),
|
|
36
41
|
// Section headers
|
|
37
42
|
"headline-sm": [
|
|
38
43
|
"text-[20px] md:text-[22px] lg:text-[24px]",
|
|
39
|
-
"leading-[28px] md:leading-[30px] lg:leading-[32px]"
|
|
44
|
+
"leading-[28px] md:leading-[30px] lg:leading-[32px]",
|
|
45
|
+
"font-montserrat"
|
|
40
46
|
].join(" "),
|
|
41
47
|
// Subsection headers
|
|
42
48
|
// Title family - Used for smaller sections and emphasized content
|
|
43
49
|
"title-lg": [
|
|
44
50
|
"text-[18px] md:text-[20px] lg:text-[22px]",
|
|
45
|
-
"leading-[24px] md:leading-[26px] lg:leading-[28px]"
|
|
51
|
+
"leading-[24px] md:leading-[26px] lg:leading-[28px]",
|
|
52
|
+
"font-montserrat"
|
|
46
53
|
].join(" "),
|
|
47
54
|
// Large titles for important sections
|
|
48
|
-
"title-md": "text-[16px] leading-[24px] tracking-[0.024px]",
|
|
55
|
+
"title-md": ["text-[16px] leading-[24px] tracking-[0.024px]", "font-montserrat"].join(" "),
|
|
49
56
|
// Medium titles for general use
|
|
50
|
-
"title-sm": "text-[14px] leading-[20px]",
|
|
57
|
+
"title-sm": ["text-[14px] leading-[20px]", "font-montserrat"].join(" "),
|
|
51
58
|
// Small titles for subsections
|
|
52
59
|
// Label family - Used for form elements and navigation
|
|
53
|
-
"label-lg": "text-[14px] leading-[20px]",
|
|
60
|
+
"label-lg": ["text-[14px] leading-[20px]", "font-opensans"].join(" "),
|
|
54
61
|
// Large labels for form fields
|
|
55
|
-
"label-md": "text-[12px] leading-[16px]",
|
|
62
|
+
"label-md": ["text-[12px] leading-[16px]", "font-opensans"].join(" "),
|
|
56
63
|
// Medium labels for general use
|
|
57
|
-
"label-sm": "text-[11px] leading-[16px]",
|
|
64
|
+
"label-sm": ["text-[11px] leading-[16px]", "font-opensans"].join(" "),
|
|
58
65
|
// Small labels for compact UI elements
|
|
59
66
|
// Body family - Used for main content and paragraphs
|
|
60
|
-
"body-lg": "text-[16px] leading-[24px] tracking-[0.08px]",
|
|
67
|
+
"body-lg": ["text-[16px] leading-[24px] tracking-[0.08px]", "font-opensans"].join(" "),
|
|
61
68
|
// Large body text for primary content
|
|
62
|
-
"body-md": "text-[14px] leading-[20px] tracking-[0.035px]",
|
|
69
|
+
"body-md": ["text-[14px] leading-[20px] tracking-[0.035px]", "font-opensans"].join(" "),
|
|
63
70
|
// Medium body text for general content
|
|
64
|
-
"body-sm": "text-[12px] leading-[16px] tracking-[0.048px]"
|
|
71
|
+
"body-sm": ["text-[12px] leading-[16px] tracking-[0.048px]", "font-opensans"].join(" ")
|
|
65
72
|
// Small body text for secondary content
|
|
66
73
|
},
|
|
67
74
|
weight: {
|
|
@@ -102,7 +109,6 @@ const typographyVariants = cva("scroll-m-20 tracking-tight", {
|
|
|
102
109
|
defaultVariants: {
|
|
103
110
|
variant: "body-md",
|
|
104
111
|
weight: "regular",
|
|
105
|
-
family: "montserrat",
|
|
106
112
|
color: "neutral"
|
|
107
113
|
}
|
|
108
114
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Typography.js","sources":["../../../src/components/Typography/Typography.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils'\n\n/**\n * Typography variants configuration using class-variance-authority\n * Updated with adjusted mobile/tablet breakpoints while preserving desktop (lg) sizes\n */\nconst typographyVariants = cva('scroll-m-20 tracking-tight', {\n variants: {\n variant: {\n // Display family - Used for large, eye-catching elements in the interface\n 'display-lg': [\n 'text-[49px] md:text-[53px] lg:text-[57px]',\n 'leading-[56px] md:leading-[60px] lg:leading-[64px]',\n '-tracking-[0.14px]',\n ].join(' '), // Large headers or section titles\n 'display-md': [\n 'text-[41px] md:text-[43px] lg:text-[45px]',\n 'leading-[48px] md:leading-[50px] lg:leading-[52px]',\n ].join(' '), // Medium-sized prominent headers\n 'display-sm': [\n 'text-[32px] md:text-[34px] lg:text-[36px]',\n 'leading-[40px] md:leading-[42px] lg:leading-[44px]',\n ].join(' '), // Smaller display text for highlighted elements\n\n // Headline family - Used for article and section headers\n 'headline-lg': [\n 'text-[28px] md:text-[30px] lg:text-[32px]',\n 'leading-[36px] md:leading-[38px] lg:leading-[40px]',\n ].join(' '), // Primary article headers\n 'headline-md': [\n 'text-[24px] md:text-[26px] lg:text-[28px]',\n 'leading-[32px] md:leading-[34px] lg:leading-[36px]',\n ].join(' '), // Section headers\n 'headline-sm': [\n 'text-[20px] md:text-[22px] lg:text-[24px]',\n 'leading-[28px] md:leading-[30px] lg:leading-[32px]',\n ].join(' '), // Subsection headers\n\n // Title family - Used for smaller sections and emphasized content\n 'title-lg': [\n 'text-[18px] md:text-[20px] lg:text-[22px]',\n 'leading-[24px] md:leading-[26px] lg:leading-[28px]',\n ].join(' '), // Large titles for important sections\n 'title-md': 'text-[16px] leading-[24px] tracking-[0.024px]', // Medium titles for general use\n 'title-sm': 'text-[14px] leading-[20px]', // Small titles for subsections\n\n // Label family - Used for form elements and navigation\n 'label-lg': 'text-[14px] leading-[20px]', // Large labels for form fields\n 'label-md': 'text-[12px] leading-[16px]', // Medium labels for general use\n 'label-sm': 'text-[11px] leading-[16px]', // Small labels for compact UI elements\n\n // Body family - Used for main content and paragraphs\n 'body-lg': 'text-[16px] leading-[24px] tracking-[0.08px]', // Large body text for primary content\n 'body-md': 'text-[14px] leading-[20px] tracking-[0.035px]', // Medium body text for general content\n 'body-sm': 'text-[12px] leading-[16px] tracking-[0.048px]', // Small body text for secondary content\n },\n weight: {\n regular: 'font-normal', // Regular weight for general text\n medium: 'font-medium', // Medium weight for semi-emphasized text\n semibold: 'font-semibold', // Semibold for important elements\n bold: 'font-bold', // Bold for high emphasis\n },\n family: {\n montserrat: 'font-montserrat', // Default font family\n opensans: 'font-opensans', // Alternative font family\n },\n color: {\n neutral: 'text-neutral-900', // Default text color\n inverse: 'text-neutral-50', // Inverted text color\n primary: 'text-primary-600', // Primary brand color\n secondary: 'text-neutral-600', // Secondary brand color\n accent: 'text-accent-500', // Accent color for emphasis\n success: 'text-success-600', // Success messages\n warning: 'text-warning-500', // Warning messages\n error: 'text-error-600', // Error messages\n },\n },\n defaultVariants: {\n variant: 'body-md',\n weight: 'regular',\n
|
|
1
|
+
{"version":3,"file":"Typography.js","sources":["../../../src/components/Typography/Typography.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils'\n\n/**\n * Typography variants configuration using class-variance-authority\n * Updated with adjusted mobile/tablet breakpoints while preserving desktop (lg) sizes\n */\nconst typographyVariants = cva('scroll-m-20 tracking-tight', {\n variants: {\n variant: {\n // Display family - Used for large, eye-catching elements in the interface\n 'display-lg': [\n 'text-[49px] md:text-[53px] lg:text-[57px]',\n 'leading-[56px] md:leading-[60px] lg:leading-[64px]',\n '-tracking-[0.14px]',\n 'font-montserrat',\n ].join(' '), // Large headers or section titles\n 'display-md': [\n 'text-[41px] md:text-[43px] lg:text-[45px]',\n 'leading-[48px] md:leading-[50px] lg:leading-[52px]',\n 'font-montserrat',\n ].join(' '), // Medium-sized prominent headers\n 'display-sm': [\n 'text-[32px] md:text-[34px] lg:text-[36px]',\n 'leading-[40px] md:leading-[42px] lg:leading-[44px]',\n 'font-montserrat',\n ].join(' '), // Smaller display text for highlighted elements\n\n // Headline family - Used for article and section headers\n 'headline-lg': [\n 'text-[28px] md:text-[30px] lg:text-[32px]',\n 'leading-[36px] md:leading-[38px] lg:leading-[40px]',\n 'font-montserrat',\n ].join(' '), // Primary article headers\n 'headline-md': [\n 'text-[24px] md:text-[26px] lg:text-[28px]',\n 'leading-[32px] md:leading-[34px] lg:leading-[36px]',\n 'font-montserrat',\n ].join(' '), // Section headers\n 'headline-sm': [\n 'text-[20px] md:text-[22px] lg:text-[24px]',\n 'leading-[28px] md:leading-[30px] lg:leading-[32px]',\n 'font-montserrat',\n ].join(' '), // Subsection headers\n\n // Title family - Used for smaller sections and emphasized content\n 'title-lg': [\n 'text-[18px] md:text-[20px] lg:text-[22px]',\n 'leading-[24px] md:leading-[26px] lg:leading-[28px]',\n 'font-montserrat',\n ].join(' '), // Large titles for important sections\n 'title-md': ['text-[16px] leading-[24px] tracking-[0.024px]', 'font-montserrat'].join(' '), // Medium titles for general use\n 'title-sm': ['text-[14px] leading-[20px]', 'font-montserrat'].join(' '), // Small titles for subsections\n\n // Label family - Used for form elements and navigation\n 'label-lg': ['text-[14px] leading-[20px]', 'font-opensans'].join(' '), // Large labels for form fields\n 'label-md': ['text-[12px] leading-[16px]', 'font-opensans'].join(' '), // Medium labels for general use\n 'label-sm': ['text-[11px] leading-[16px]', 'font-opensans'].join(' '), // Small labels for compact UI elements\n\n // Body family - Used for main content and paragraphs\n 'body-lg': ['text-[16px] leading-[24px] tracking-[0.08px]', 'font-opensans'].join(' '), // Large body text for primary content\n 'body-md': ['text-[14px] leading-[20px] tracking-[0.035px]', 'font-opensans'].join(' '), // Medium body text for general content\n 'body-sm': ['text-[12px] leading-[16px] tracking-[0.048px]', 'font-opensans'].join(' '), // Small body text for secondary content\n },\n weight: {\n regular: 'font-normal', // Regular weight for general text\n medium: 'font-medium', // Medium weight for semi-emphasized text\n semibold: 'font-semibold', // Semibold for important elements\n bold: 'font-bold', // Bold for high emphasis\n },\n family: {\n montserrat: 'font-montserrat', // Default font family\n opensans: 'font-opensans', // Alternative font family\n },\n color: {\n neutral: 'text-neutral-900', // Default text color\n inverse: 'text-neutral-50', // Inverted text color\n primary: 'text-primary-600', // Primary brand color\n secondary: 'text-neutral-600', // Secondary brand color\n accent: 'text-accent-500', // Accent color for emphasis\n success: 'text-success-600', // Success messages\n warning: 'text-warning-500', // Warning messages\n error: 'text-error-600', // Error messages\n },\n },\n defaultVariants: {\n variant: 'body-md',\n weight: 'regular',\n color: 'neutral',\n },\n})\n\nexport interface TypographyProps\n extends React.BaseHTMLAttributes<HTMLParagraphElement>,\n VariantProps<typeof typographyVariants> {\n component?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span' | 'p' | null\n color?: 'neutral' | 'primary' | 'secondary' | 'inverse' | 'accent' | 'success' | 'warning' | 'error'\n}\n\n/**\n * Usage:\n * ```tsx\n * <Typography variant=\"display-lg\" weight=\"bold\">Large Display</Typography>\n *\n * <Typography variant=\"headline-md\" family=\"opensans\" component=\"h2\">Section Header</Typography>\n *\n * <Typography variant=\"body-md\">Regular paragraph text</Typography>\n * ```\n */\nconst Typography = React.forwardRef<HTMLParagraphElement, TypographyProps>(\n ({ className, variant, weight, family, color, component, ...props }, ref) => {\n const Comp = component ?? 'span'\n return (\n <Comp className={cn(typographyVariants({ variant, weight, family, color, className }))} ref={ref} {...props} />\n )\n },\n)\n\nTypography.displayName = 'Typography'\n\nexport { Typography, typographyVariants }\n"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -32,4 +32,5 @@ export { ToggleGroup, ToggleGroupItem } from './components/ToggleGroup/ToggleGro
|
|
|
32
32
|
export { Progress } from './components/Progress/Progress.js';
|
|
33
33
|
export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './components/DropdownMenu/DropdownMenu.js';
|
|
34
34
|
export { Separator } from './components/Separator/Separator.js';
|
|
35
|
+
export { Marquee } from './components/Marquee/Marquee.js';
|
|
35
36
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/lib/plugin.js
CHANGED
|
@@ -8,6 +8,14 @@ function periploTheme() {
|
|
|
8
8
|
theme: {
|
|
9
9
|
extend: {
|
|
10
10
|
keyframes: {
|
|
11
|
+
marquee: {
|
|
12
|
+
from: { transform: "translateX(0)" },
|
|
13
|
+
to: { transform: "translateX(calc(-100% - var(--gap)))" }
|
|
14
|
+
},
|
|
15
|
+
"marquee-vertical": {
|
|
16
|
+
from: { transform: "translateY(0)" },
|
|
17
|
+
to: { transform: "translateY(calc(-100% - var(--gap)))" }
|
|
18
|
+
},
|
|
11
19
|
"accordion-down": {
|
|
12
20
|
from: { height: "0" },
|
|
13
21
|
to: { height: "var(--radix-accordion-content-height)" }
|
|
@@ -37,7 +45,9 @@ function periploTheme() {
|
|
|
37
45
|
"accordion-up": "accordion-up 0.2s ease-out",
|
|
38
46
|
shine: "shine 1s ease",
|
|
39
47
|
"shine-infinite": "shine-infinite 10s ease infinite",
|
|
40
|
-
"icon-down-up": "icon-down-up 0.2s ease-out"
|
|
48
|
+
"icon-down-up": "icon-down-up 0.2s ease-out",
|
|
49
|
+
marquee: "marquee var(--duration) linear infinite",
|
|
50
|
+
"marquee-vertical": "marquee-vertical var(--duration) linear infinite"
|
|
41
51
|
},
|
|
42
52
|
fontFamily: {
|
|
43
53
|
montserrat: ["var(--font-montserrat)", "sans-serif"],
|
package/dist/lib/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["../../src/lib/plugin.ts"],"sourcesContent":["import plugin from 'tailwindcss/plugin'\n\nexport function handler() {\n return true\n}\n\nexport function periploTheme() {\n return plugin(handler, {\n theme: {\n extend: {\n keyframes: {\n 'accordion-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-accordion-content-height)' },\n },\n 'accordion-up': {\n from: { height: 'var(--radix-accordion-content-height)' },\n to: { height: '0' },\n },\n shine: {\n '0%': { backgroundPosition: '200% 0' },\n '100%': { backgroundPosition: '-100% 0' },\n },\n 'shine-infinite': {\n '0%': { backgroundPosition: '200% 0' },\n '10%': { backgroundPosition: '-100% 0' },\n '100%': { backgroundPosition: '-100% 0' },\n },\n 'icon-down-up': {\n '0%': { transform: 'translateY(0%)' },\n '50%': { transform: 'translateY(100%)' },\n '50.01%': { transform: 'translateY(-100%)' },\n '100%': { transform: 'translateY(0%)' },\n },\n },\n animation: {\n 'accordion-down': 'accordion-down 0.2s ease-out',\n 'accordion-up': 'accordion-up 0.2s ease-out',\n shine: 'shine 1s ease',\n 'shine-infinite': 'shine-infinite 10s ease infinite',\n 'icon-down-up': 'icon-down-up 0.2s ease-out',\n },\n fontFamily: {\n montserrat: ['var(--font-montserrat)', 'sans-serif'],\n opensans: ['var(--font-opensans)', 'sans-serif'],\n },\n colors: {\n foreground: '#1D1D1B',\n white: '#FFFFFF',\n card: '#F7F7F6',\n 'card-foreground': '#1D1D1B',\n popover: '#F7F7F6',\n 'popover-foreground': '#1D1D1B',\n neutral: {\n '50': '#F7F7F6',\n '100': '#E4E4E3',\n '200': '#C9C9C6',\n '300': '#A7A6A1',\n '400': '#84837D',\n '500': '#696963',\n '600': '#53534E',\n '700': '#454440',\n '800': '#393936',\n '900': '#32322F',\n '950': '#1D1D1B',\n DEFAULT: '#696963',\n foreground: '#F7F7F6',\n },\n primary: {\n '50': '#FFF0DE',\n '100': '#FFE182',\n '200': '#FFD685',\n '300': '#FFCE59',\n '400': '#FFC92F',\n '500': '#FBBA00',\n '600': '#F1A100',\n '700': '#F8A800',\n '800': '#FAA100',\n '900': '#F19700',\n '950': '#ED8C00',\n DEFAULT: '#FBBA00',\n foreground: '#1D1D1B',\n },\n accent: {\n '50': '#FFD5A8',\n '100': '#FFCC93',\n '200': '#FFB86A',\n '300': '#FFA542',\n '400': '#FF9119',\n '500': '#F77D00',\n '600': '#D57000',\n '700': '#BC6200',\n '800': '#A35500',\n '900': '#894800',\n '950': '#7C4100',\n DEFAULT: '#F77D00',\n foreground: '#1D1D1B',\n },\n success: {\n '50': '#F2FBF2',\n '100': '#E1F8E0',\n '200': '#C5EFC3',\n '300': '#90E194',\n '400': '#5FCB5D',\n '500': '#2EC03C',\n '600': '#299128',\n '700': '#247223',\n '800': '#215B20',\n '900': '#1C4B1D',\n '950': '#0A290B',\n DEFAULT: '#247223',\n foreground: '#FFFFFF',\n },\n warning: {\n '50': '#FCF5EE',\n '100': '#F7E4CE',\n '200': '#EEC799',\n '300': '#E6A563',\n '400': '#DE8334',\n '500': '#D76929',\n '600': '#BE4D21',\n '700': '#9E331F',\n '800': '#812B1F',\n '900': '#6B251C',\n '950': '#3D100B',\n DEFAULT: '#D76929',\n foreground: '#FFFFFF',\n },\n error: {\n '50': '#FEF2F2',\n '100': '#FEE2E2',\n '200': '#FFC9C9',\n '300': '#FDA4A4',\n '400': '#FA6F70',\n '500': '#F13637',\n '600': '#DF2324',\n '700': '#BC191A',\n '800': '#9B191A',\n '900': '#811B1C',\n '950': '#460909',\n DEFAULT: '#BC191A',\n foreground: '#FFFFFF',\n },\n background: {\n '50': '#FFFFFF',\n '100': '#FBFBFB',\n '200': '#FEF0D6',\n '300': '#FDE1AE',\n '400': '#FCD386',\n '500': '#FBC45F',\n '600': '#FAB637',\n '700': '#F9A70F',\n '800': '#DA8F05',\n '900': '#B27504',\n '950': '#9E6804',\n DEFAULT: '#FBC45F',\n foreground: '#1D1D1B',\n },\n border: '#F7F7F6',\n input: '#F7F7F6',\n ring: '#FAB700',\n },\n },\n },\n })\n}\n"],"names":[],"mappings":";;AAEO,SAAS,OAAU,GAAA;AACxB,EAAO,OAAA,IAAA;AACT;AAEO,SAAS,YAAe,GAAA;AAC7B,EAAA,OAAO,OAAO,OAAS,EAAA;AAAA,IACrB,KAAO,EAAA;AAAA,MACL,MAAQ,EAAA;AAAA,QACN,SAAW,EAAA;AAAA,UACT,gBAAkB,EAAA;AAAA,YAChB,IAAA,EAAM,EAAE,MAAA,EAAQ,GAAI,EAAA;AAAA,YACpB,EAAA,EAAI,EAAE,MAAA,EAAQ,uCAAwC;AAAA,WACxD;AAAA,UACA,cAAgB,EAAA;AAAA,YACd,IAAA,EAAM,EAAE,MAAA,EAAQ,uCAAwC,EAAA;AAAA,YACxD,EAAA,EAAI,EAAE,MAAA,EAAQ,GAAI;AAAA,WACpB;AAAA,UACA,KAAO,EAAA;AAAA,YACL,IAAA,EAAM,EAAE,kBAAA,EAAoB,QAAS,EAAA;AAAA,YACrC,MAAA,EAAQ,EAAE,kBAAA,EAAoB,SAAU;AAAA,WAC1C;AAAA,UACA,gBAAkB,EAAA;AAAA,YAChB,IAAA,EAAM,EAAE,kBAAA,EAAoB,QAAS,EAAA;AAAA,YACrC,KAAA,EAAO,EAAE,kBAAA,EAAoB,SAAU,EAAA;AAAA,YACvC,MAAA,EAAQ,EAAE,kBAAA,EAAoB,SAAU;AAAA,WAC1C;AAAA,UACA,cAAgB,EAAA;AAAA,YACd,IAAA,EAAM,EAAE,SAAA,EAAW,gBAAiB,EAAA;AAAA,YACpC,KAAA,EAAO,EAAE,SAAA,EAAW,kBAAmB,EAAA;AAAA,YACvC,QAAA,EAAU,EAAE,SAAA,EAAW,mBAAoB,EAAA;AAAA,YAC3C,MAAA,EAAQ,EAAE,SAAA,EAAW,gBAAiB;AAAA;AACxC,SACF;AAAA,QACA,SAAW,EAAA;AAAA,UACT,gBAAkB,EAAA,8BAAA;AAAA,UAClB,cAAgB,EAAA,4BAAA;AAAA,UAChB,KAAO,EAAA,eAAA;AAAA,UACP,gBAAkB,EAAA,kCAAA;AAAA,UAClB,cAAgB,EAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["../../src/lib/plugin.ts"],"sourcesContent":["import plugin from 'tailwindcss/plugin'\n\nexport function handler() {\n return true\n}\n\nexport function periploTheme() {\n return plugin(handler, {\n theme: {\n extend: {\n keyframes: {\n marquee: {\n from: { transform: \"translateX(0)\" },\n to: { transform: \"translateX(calc(-100% - var(--gap)))\" },\n },\n \"marquee-vertical\": {\n from: { transform: \"translateY(0)\" },\n to: { transform: \"translateY(calc(-100% - var(--gap)))\" },\n },\n 'accordion-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-accordion-content-height)' },\n },\n 'accordion-up': {\n from: { height: 'var(--radix-accordion-content-height)' },\n to: { height: '0' },\n },\n shine: {\n '0%': { backgroundPosition: '200% 0' },\n '100%': { backgroundPosition: '-100% 0' },\n },\n 'shine-infinite': {\n '0%': { backgroundPosition: '200% 0' },\n '10%': { backgroundPosition: '-100% 0' },\n '100%': { backgroundPosition: '-100% 0' },\n },\n 'icon-down-up': {\n '0%': { transform: 'translateY(0%)' },\n '50%': { transform: 'translateY(100%)' },\n '50.01%': { transform: 'translateY(-100%)' },\n '100%': { transform: 'translateY(0%)' },\n },\n },\n animation: {\n 'accordion-down': 'accordion-down 0.2s ease-out',\n 'accordion-up': 'accordion-up 0.2s ease-out',\n shine: 'shine 1s ease',\n 'shine-infinite': 'shine-infinite 10s ease infinite',\n 'icon-down-up': 'icon-down-up 0.2s ease-out',\n marquee: \"marquee var(--duration) linear infinite\",\n \"marquee-vertical\": \"marquee-vertical var(--duration) linear infinite\",\n },\n fontFamily: {\n montserrat: ['var(--font-montserrat)', 'sans-serif'],\n opensans: ['var(--font-opensans)', 'sans-serif'],\n },\n colors: {\n foreground: '#1D1D1B',\n white: '#FFFFFF',\n card: '#F7F7F6',\n 'card-foreground': '#1D1D1B',\n popover: '#F7F7F6',\n 'popover-foreground': '#1D1D1B',\n neutral: {\n '50': '#F7F7F6',\n '100': '#E4E4E3',\n '200': '#C9C9C6',\n '300': '#A7A6A1',\n '400': '#84837D',\n '500': '#696963',\n '600': '#53534E',\n '700': '#454440',\n '800': '#393936',\n '900': '#32322F',\n '950': '#1D1D1B',\n DEFAULT: '#696963',\n foreground: '#F7F7F6',\n },\n primary: {\n '50': '#FFF0DE',\n '100': '#FFE182',\n '200': '#FFD685',\n '300': '#FFCE59',\n '400': '#FFC92F',\n '500': '#FBBA00',\n '600': '#F1A100',\n '700': '#F8A800',\n '800': '#FAA100',\n '900': '#F19700',\n '950': '#ED8C00',\n DEFAULT: '#FBBA00',\n foreground: '#1D1D1B',\n },\n accent: {\n '50': '#FFD5A8',\n '100': '#FFCC93',\n '200': '#FFB86A',\n '300': '#FFA542',\n '400': '#FF9119',\n '500': '#F77D00',\n '600': '#D57000',\n '700': '#BC6200',\n '800': '#A35500',\n '900': '#894800',\n '950': '#7C4100',\n DEFAULT: '#F77D00',\n foreground: '#1D1D1B',\n },\n success: {\n '50': '#F2FBF2',\n '100': '#E1F8E0',\n '200': '#C5EFC3',\n '300': '#90E194',\n '400': '#5FCB5D',\n '500': '#2EC03C',\n '600': '#299128',\n '700': '#247223',\n '800': '#215B20',\n '900': '#1C4B1D',\n '950': '#0A290B',\n DEFAULT: '#247223',\n foreground: '#FFFFFF',\n },\n warning: {\n '50': '#FCF5EE',\n '100': '#F7E4CE',\n '200': '#EEC799',\n '300': '#E6A563',\n '400': '#DE8334',\n '500': '#D76929',\n '600': '#BE4D21',\n '700': '#9E331F',\n '800': '#812B1F',\n '900': '#6B251C',\n '950': '#3D100B',\n DEFAULT: '#D76929',\n foreground: '#FFFFFF',\n },\n error: {\n '50': '#FEF2F2',\n '100': '#FEE2E2',\n '200': '#FFC9C9',\n '300': '#FDA4A4',\n '400': '#FA6F70',\n '500': '#F13637',\n '600': '#DF2324',\n '700': '#BC191A',\n '800': '#9B191A',\n '900': '#811B1C',\n '950': '#460909',\n DEFAULT: '#BC191A',\n foreground: '#FFFFFF',\n },\n background: {\n '50': '#FFFFFF',\n '100': '#FBFBFB',\n '200': '#FEF0D6',\n '300': '#FDE1AE',\n '400': '#FCD386',\n '500': '#FBC45F',\n '600': '#FAB637',\n '700': '#F9A70F',\n '800': '#DA8F05',\n '900': '#B27504',\n '950': '#9E6804',\n DEFAULT: '#FBC45F',\n foreground: '#1D1D1B',\n },\n border: '#F7F7F6',\n input: '#F7F7F6',\n ring: '#FAB700',\n },\n },\n },\n })\n}\n"],"names":[],"mappings":";;AAEO,SAAS,OAAU,GAAA;AACxB,EAAO,OAAA,IAAA;AACT;AAEO,SAAS,YAAe,GAAA;AAC7B,EAAA,OAAO,OAAO,OAAS,EAAA;AAAA,IACrB,KAAO,EAAA;AAAA,MACL,MAAQ,EAAA;AAAA,QACN,SAAW,EAAA;AAAA,UACT,OAAS,EAAA;AAAA,YACP,IAAA,EAAM,EAAE,SAAA,EAAW,eAAgB,EAAA;AAAA,YACnC,EAAA,EAAI,EAAE,SAAA,EAAW,sCAAuC;AAAA,WAC1D;AAAA,UACA,kBAAoB,EAAA;AAAA,YAClB,IAAA,EAAM,EAAE,SAAA,EAAW,eAAgB,EAAA;AAAA,YACnC,EAAA,EAAI,EAAE,SAAA,EAAW,sCAAuC;AAAA,WAC1D;AAAA,UACA,gBAAkB,EAAA;AAAA,YAChB,IAAA,EAAM,EAAE,MAAA,EAAQ,GAAI,EAAA;AAAA,YACpB,EAAA,EAAI,EAAE,MAAA,EAAQ,uCAAwC;AAAA,WACxD;AAAA,UACA,cAAgB,EAAA;AAAA,YACd,IAAA,EAAM,EAAE,MAAA,EAAQ,uCAAwC,EAAA;AAAA,YACxD,EAAA,EAAI,EAAE,MAAA,EAAQ,GAAI;AAAA,WACpB;AAAA,UACA,KAAO,EAAA;AAAA,YACL,IAAA,EAAM,EAAE,kBAAA,EAAoB,QAAS,EAAA;AAAA,YACrC,MAAA,EAAQ,EAAE,kBAAA,EAAoB,SAAU;AAAA,WAC1C;AAAA,UACA,gBAAkB,EAAA;AAAA,YAChB,IAAA,EAAM,EAAE,kBAAA,EAAoB,QAAS,EAAA;AAAA,YACrC,KAAA,EAAO,EAAE,kBAAA,EAAoB,SAAU,EAAA;AAAA,YACvC,MAAA,EAAQ,EAAE,kBAAA,EAAoB,SAAU;AAAA,WAC1C;AAAA,UACA,cAAgB,EAAA;AAAA,YACd,IAAA,EAAM,EAAE,SAAA,EAAW,gBAAiB,EAAA;AAAA,YACpC,KAAA,EAAO,EAAE,SAAA,EAAW,kBAAmB,EAAA;AAAA,YACvC,QAAA,EAAU,EAAE,SAAA,EAAW,mBAAoB,EAAA;AAAA,YAC3C,MAAA,EAAQ,EAAE,SAAA,EAAW,gBAAiB;AAAA;AACxC,SACF;AAAA,QACA,SAAW,EAAA;AAAA,UACT,gBAAkB,EAAA,8BAAA;AAAA,UAClB,cAAgB,EAAA,4BAAA;AAAA,UAChB,KAAO,EAAA,eAAA;AAAA,UACP,gBAAkB,EAAA,kCAAA;AAAA,UAClB,cAAgB,EAAA,4BAAA;AAAA,UAChB,OAAS,EAAA,yCAAA;AAAA,UACX,kBAAoB,EAAA;AAAA,SACpB;AAAA,QACA,UAAY,EAAA;AAAA,UACV,UAAA,EAAY,CAAC,wBAAA,EAA0B,YAAY,CAAA;AAAA,UACnD,QAAA,EAAU,CAAC,sBAAA,EAAwB,YAAY;AAAA,SACjD;AAAA,QACA,MAAQ,EAAA;AAAA,UACN,UAAY,EAAA,SAAA;AAAA,UACZ,KAAO,EAAA,SAAA;AAAA,UACP,IAAM,EAAA,SAAA;AAAA,UACN,iBAAmB,EAAA,SAAA;AAAA,UACnB,OAAS,EAAA,SAAA;AAAA,UACT,oBAAsB,EAAA,SAAA;AAAA,UACtB,OAAS,EAAA;AAAA,YACP,IAAM,EAAA,SAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,OAAS,EAAA,SAAA;AAAA,YACT,UAAY,EAAA;AAAA,WACd;AAAA,UACA,OAAS,EAAA;AAAA,YACP,IAAM,EAAA,SAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,OAAS,EAAA,SAAA;AAAA,YACT,UAAY,EAAA;AAAA,WACd;AAAA,UACA,MAAQ,EAAA;AAAA,YACN,IAAM,EAAA,SAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,OAAS,EAAA,SAAA;AAAA,YACT,UAAY,EAAA;AAAA,WACd;AAAA,UACA,OAAS,EAAA;AAAA,YACP,IAAM,EAAA,SAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,OAAS,EAAA,SAAA;AAAA,YACT,UAAY,EAAA;AAAA,WACd;AAAA,UACA,OAAS,EAAA;AAAA,YACP,IAAM,EAAA,SAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,OAAS,EAAA,SAAA;AAAA,YACT,UAAY,EAAA;AAAA,WACd;AAAA,UACA,KAAO,EAAA;AAAA,YACL,IAAM,EAAA,SAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,OAAS,EAAA,SAAA;AAAA,YACT,UAAY,EAAA;AAAA,WACd;AAAA,UACA,UAAY,EAAA;AAAA,YACV,IAAM,EAAA,SAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,SAAA;AAAA,YACP,OAAS,EAAA,SAAA;AAAA,YACT,UAAY,EAAA;AAAA,WACd;AAAA,UACA,MAAQ,EAAA,SAAA;AAAA,UACR,KAAO,EAAA,SAAA;AAAA,UACP,IAAM,EAAA;AAAA;AACR;AACF;AACF,GACD,CAAA;AACH;;;;"}
|