@vritti/quantum-ui 0.1.1 → 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/dist/Button-CCQVCZBc.js +97 -0
- package/dist/Button-CCQVCZBc.js.map +1 -0
- package/dist/Card-C5V_kLq7.js +41 -0
- package/dist/Card-C5V_kLq7.js.map +1 -0
- package/dist/TextField-bmiQJ7hv.js +119 -0
- package/dist/TextField-bmiQJ7hv.js.map +1 -0
- package/dist/ThemeToggle-HP4cegI7.js +78 -0
- package/dist/ThemeToggle-HP4cegI7.js.map +1 -0
- package/dist/Typography-BCxuB5sP.js +100 -0
- package/dist/Typography-BCxuB5sP.js.map +1 -0
- package/dist/components/Button.js +1 -19
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Card.js +2 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/TextField.js +1 -28
- package/dist/components/TextField.js.map +1 -1
- package/dist/components/ThemeToggle.js +2 -0
- package/dist/components/ThemeToggle.js.map +1 -0
- package/dist/components/Typography.js +1 -41
- package/dist/components/Typography.js.map +1 -1
- package/dist/index-B_dX4wQk.js +123 -0
- package/dist/index-B_dX4wQk.js.map +1 -0
- package/dist/index.js +6 -92
- package/dist/index.js.map +1 -1
- package/dist/lib/components/Button/Button.d.ts +10 -0
- package/dist/lib/components/Button/Button.d.ts.map +1 -0
- package/dist/lib/components/Button/index.d.ts +2 -0
- package/dist/lib/components/Button/index.d.ts.map +1 -0
- package/dist/lib/components/Card/Card.d.ts +2 -0
- package/dist/lib/components/Card/Card.d.ts.map +1 -0
- package/dist/lib/components/Card/index.d.ts +2 -0
- package/dist/lib/components/Card/index.d.ts.map +1 -0
- package/dist/lib/components/TextField/TextField.d.ts +8 -0
- package/dist/lib/components/TextField/TextField.d.ts.map +1 -0
- package/dist/lib/components/TextField/index.d.ts +2 -0
- package/dist/lib/components/TextField/index.d.ts.map +1 -0
- package/dist/lib/components/ThemeToggle/ThemeToggle.d.ts +7 -0
- package/dist/lib/components/ThemeToggle/ThemeToggle.d.ts.map +1 -0
- package/dist/lib/components/ThemeToggle/index.d.ts +2 -0
- package/dist/lib/components/ThemeToggle/index.d.ts.map +1 -0
- package/dist/lib/components/Typography/Typography.d.ts +10 -0
- package/dist/lib/components/Typography/Typography.d.ts.map +1 -0
- package/dist/lib/components/Typography/index.d.ts +2 -0
- package/dist/lib/components/Typography/index.d.ts.map +1 -0
- package/dist/lib/components/index.d.ts +6 -0
- package/dist/lib/components/index.d.ts.map +1 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/utils-BLJyPY44.js +2963 -0
- package/dist/utils-BLJyPY44.js.map +1 -0
- package/package.json +23 -13
- package/readme.md +72 -60
- package/dist/ThemeScript-BcAiGxU5.js +0 -1586
- package/dist/ThemeScript-BcAiGxU5.js.map +0 -1
- package/dist/components/Button/Button.d.ts +0 -11
- package/dist/components/Button/Button.d.ts.map +0 -1
- package/dist/components/Button/index.d.ts +0 -3
- package/dist/components/Button/index.d.ts.map +0 -1
- package/dist/components/Paper/Paper.d.ts +0 -14
- package/dist/components/Paper/Paper.d.ts.map +0 -1
- package/dist/components/Paper/index.d.ts +0 -3
- package/dist/components/Paper/index.d.ts.map +0 -1
- package/dist/components/Paper.js +0 -27
- package/dist/components/Paper.js.map +0 -1
- package/dist/components/TextField/TextField.d.ts +0 -13
- package/dist/components/TextField/TextField.d.ts.map +0 -1
- package/dist/components/TextField/index.d.ts +0 -3
- package/dist/components/TextField/index.d.ts.map +0 -1
- package/dist/components/Typography/Typography.d.ts +0 -8
- package/dist/components/Typography/Typography.d.ts.map +0 -1
- package/dist/components/Typography/index.d.ts +0 -3
- package/dist/components/Typography/index.d.ts.map +0 -1
- package/dist/components/index.d.ts +0 -9
- package/dist/components/index.d.ts.map +0 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/next.d.ts +0 -4
- package/dist/next.d.ts.map +0 -1
- package/dist/next.js +0 -2
- package/dist/next.js.map +0 -1
- package/dist/theme/ThemeProvider.d.ts +0 -9
- package/dist/theme/ThemeProvider.d.ts.map +0 -1
- package/dist/theme/ThemeScript.d.ts +0 -11
- package/dist/theme/ThemeScript.d.ts.map +0 -1
- package/dist/theme/components/Button.d.ts +0 -3
- package/dist/theme/components/Button.d.ts.map +0 -1
- package/dist/theme/components/Paper.d.ts +0 -3
- package/dist/theme/components/Paper.d.ts.map +0 -1
- package/dist/theme/components/TextField.d.ts +0 -3
- package/dist/theme/components/TextField.d.ts.map +0 -1
- package/dist/theme/components/index.d.ts +0 -4
- package/dist/theme/components/index.d.ts.map +0 -1
- package/dist/theme/createTheme.d.ts +0 -2
- package/dist/theme/createTheme.d.ts.map +0 -1
- package/dist/theme/cssVariableGenerator.d.ts +0 -4
- package/dist/theme/cssVariableGenerator.d.ts.map +0 -1
- package/dist/theme/index.d.ts +0 -8
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/theme/palette.d.ts +0 -88
- package/dist/theme/palette.d.ts.map +0 -1
- package/dist/theme/semanticTokens.d.ts +0 -142
- package/dist/theme/semanticTokens.d.ts.map +0 -1
- package/dist/theme/useTheme.d.ts +0 -12
- package/dist/theme/useTheme.d.ts.map +0 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { a as clsx, c as cn } from './utils-BLJyPY44.js';
|
|
3
|
+
import React__default from 'react';
|
|
4
|
+
import { S as Slot } from './index-B_dX4wQk.js';
|
|
5
|
+
|
|
6
|
+
const falsyToString = (value)=>typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
|
|
7
|
+
const cx = clsx;
|
|
8
|
+
const cva = (base, config)=>(props)=>{
|
|
9
|
+
var _config_compoundVariants;
|
|
10
|
+
if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
11
|
+
const { variants, defaultVariants } = config;
|
|
12
|
+
const getVariantClassNames = Object.keys(variants).map((variant)=>{
|
|
13
|
+
const variantProp = props === null || props === void 0 ? void 0 : props[variant];
|
|
14
|
+
const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
|
|
15
|
+
if (variantProp === null) return null;
|
|
16
|
+
const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
|
|
17
|
+
return variants[variant][variantKey];
|
|
18
|
+
});
|
|
19
|
+
const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{
|
|
20
|
+
let [key, value] = param;
|
|
21
|
+
if (value === undefined) {
|
|
22
|
+
return acc;
|
|
23
|
+
}
|
|
24
|
+
acc[key] = value;
|
|
25
|
+
return acc;
|
|
26
|
+
}, {});
|
|
27
|
+
const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{
|
|
28
|
+
let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;
|
|
29
|
+
return Object.entries(compoundVariantOptions).every((param)=>{
|
|
30
|
+
let [key, value] = param;
|
|
31
|
+
return Array.isArray(value) ? value.includes({
|
|
32
|
+
...defaultVariants,
|
|
33
|
+
...propsWithoutUndefined
|
|
34
|
+
}[key]) : ({
|
|
35
|
+
...defaultVariants,
|
|
36
|
+
...propsWithoutUndefined
|
|
37
|
+
})[key] === value;
|
|
38
|
+
}) ? [
|
|
39
|
+
...acc,
|
|
40
|
+
cvClass,
|
|
41
|
+
cvClassName
|
|
42
|
+
] : acc;
|
|
43
|
+
}, []);
|
|
44
|
+
return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const buttonVariants = cva(
|
|
48
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
49
|
+
{
|
|
50
|
+
variants: {
|
|
51
|
+
variant: {
|
|
52
|
+
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
53
|
+
destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
54
|
+
outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
55
|
+
secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
|
|
56
|
+
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
57
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
58
|
+
},
|
|
59
|
+
size: {
|
|
60
|
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
61
|
+
sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
|
|
62
|
+
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
63
|
+
icon: "size-9"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
defaultVariants: {
|
|
67
|
+
variant: "default",
|
|
68
|
+
size: "default"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
function Button$1({
|
|
73
|
+
className,
|
|
74
|
+
variant,
|
|
75
|
+
size,
|
|
76
|
+
asChild = false,
|
|
77
|
+
...props
|
|
78
|
+
}) {
|
|
79
|
+
const Comp = asChild ? Slot : "button";
|
|
80
|
+
return /* @__PURE__ */ jsx(Comp, { "data-slot": "button", className: cn(buttonVariants({ variant, size, className })), ...props });
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const Button = React__default.memo(
|
|
84
|
+
({ className, ...props }) => {
|
|
85
|
+
return /* @__PURE__ */ jsx(
|
|
86
|
+
Button$1,
|
|
87
|
+
{
|
|
88
|
+
className: cn(className),
|
|
89
|
+
...props
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
Button.displayName = "Button";
|
|
95
|
+
|
|
96
|
+
export { Button as B };
|
|
97
|
+
//# sourceMappingURL=Button-CCQVCZBc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button-CCQVCZBc.js","sources":["../node_modules/class-variance-authority/dist/index.mjs","../shadcn/shadcnButton/Button.tsx","../lib/components/Button/Button.tsx"],"sourcesContent":["/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '../utils';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n\n return <Comp data-slot='button' className={cn(buttonVariants({ variant, size, className }))} {...props} />;\n}\n\nexport { Button, buttonVariants };\n","import { Button as ShadcnButton, buttonVariants } from '../../../shadcn/shadcnButton';\nimport { cn } from '../../../shadcn/utils';\nimport type { VariantProps } from 'class-variance-authority';\nimport React from 'react';\n\nexport interface ButtonProps\n extends React.ComponentProps<'button'>,\n VariantProps<typeof buttonVariants> {\n /**\n * Button content\n */\n children: React.ReactNode;\n\n /**\n * Additional CSS classes\n */\n className?: string;\n\n /**\n * Whether to render as child component\n */\n asChild?: boolean;\n}\n\n// Button molecule - pure shadcn Button with quantum defaults\nexport const Button = React.memo<ButtonProps>(\n ({ className, ...props }) => {\n return (\n <ShadcnButton\n className={cn(className)}\n {...props}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n"],"names":["Button","React","ShadcnButton"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { c as cn } from './utils-BLJyPY44.js';
|
|
3
|
+
|
|
4
|
+
function Card({ className, ...props }) {
|
|
5
|
+
return /* @__PURE__ */ jsx(
|
|
6
|
+
"div",
|
|
7
|
+
{
|
|
8
|
+
"data-slot": "card",
|
|
9
|
+
className: cn("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm", className),
|
|
10
|
+
...props
|
|
11
|
+
}
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
function CardHeader({ className, ...props }) {
|
|
15
|
+
return /* @__PURE__ */ jsx(
|
|
16
|
+
"div",
|
|
17
|
+
{
|
|
18
|
+
"data-slot": "card-header",
|
|
19
|
+
className: cn(
|
|
20
|
+
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
|
|
21
|
+
className
|
|
22
|
+
),
|
|
23
|
+
...props
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
function CardTitle({ className, ...props }) {
|
|
28
|
+
return /* @__PURE__ */ jsx("div", { "data-slot": "card-title", className: cn("leading-none font-semibold", className), ...props });
|
|
29
|
+
}
|
|
30
|
+
function CardDescription({ className, ...props }) {
|
|
31
|
+
return /* @__PURE__ */ jsx("div", { "data-slot": "card-description", className: cn("text-muted-foreground text-sm", className), ...props });
|
|
32
|
+
}
|
|
33
|
+
function CardContent({ className, ...props }) {
|
|
34
|
+
return /* @__PURE__ */ jsx("div", { "data-slot": "card-content", className: cn("px-6", className), ...props });
|
|
35
|
+
}
|
|
36
|
+
function CardFooter({ className, ...props }) {
|
|
37
|
+
return /* @__PURE__ */ jsx("div", { "data-slot": "card-footer", className: cn("flex items-center px-6 [.border-t]:pt-6", className), ...props });
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { Card as C, CardContent as a, CardDescription as b, CardFooter as c, CardHeader as d, CardTitle as e };
|
|
41
|
+
//# sourceMappingURL=Card-C5V_kLq7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card-C5V_kLq7.js","sources":["../shadcn/shadcnCard/Card.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../utils';\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card'\n className={cn('bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm', className)}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-header'\n className={cn(\n '@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot='card-title' className={cn('leading-none font-semibold', className)} {...props} />;\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot='card-description' className={cn('text-muted-foreground text-sm', className)} {...props} />;\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='card-action'\n className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot='card-content' className={cn('px-6', className)} {...props} />;\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div data-slot='card-footer' className={cn('flex items-center px-6 [.border-t]:pt-6', className)} {...props} />\n );\n}\n\nexport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n"],"names":[],"mappings":";;;AAIA,SAAS,IAAK,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AAClE,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,MAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,mFAAA,EAAqF,SAAS,CAAA;AAAA,MAC3G,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAW,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACxE,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,aAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,4JAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,SAAU,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACvE,EAAO,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,WAAA,EAAU,YAAa,EAAA,SAAA,EAAW,GAAG,4BAA8B,EAAA,SAAS,CAAI,EAAA,GAAG,KAAO,EAAA,CAAA;AACxG;AAEA,SAAS,eAAgB,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AAC7E,EAAO,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,WAAA,EAAU,kBAAmB,EAAA,SAAA,EAAW,GAAG,+BAAiC,EAAA,SAAS,CAAI,EAAA,GAAG,KAAO,EAAA,CAAA;AACjH;AAYA,SAAS,WAAY,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACzE,EAAO,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,WAAA,EAAU,cAAe,EAAA,SAAA,EAAW,GAAG,MAAQ,EAAA,SAAS,CAAI,EAAA,GAAG,KAAO,EAAA,CAAA;AACpF;AAEA,SAAS,UAAW,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACxE,EACE,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,WAAA,EAAU,aAAc,EAAA,SAAA,EAAW,GAAG,yCAA2C,EAAA,SAAS,CAAI,EAAA,GAAG,KAAO,EAAA,CAAA;AAEjH;;;;"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { c as cn } from './utils-BLJyPY44.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import 'react-dom';
|
|
5
|
+
import { c as createSlot } from './index-B_dX4wQk.js';
|
|
6
|
+
|
|
7
|
+
function Input({ className, type, ...props }) {
|
|
8
|
+
return /* @__PURE__ */ jsx(
|
|
9
|
+
"input",
|
|
10
|
+
{
|
|
11
|
+
type,
|
|
12
|
+
"data-slot": "input",
|
|
13
|
+
className: cn(
|
|
14
|
+
"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
15
|
+
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
16
|
+
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
17
|
+
className
|
|
18
|
+
),
|
|
19
|
+
...props
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// src/primitive.tsx
|
|
25
|
+
var NODES = [
|
|
26
|
+
"a",
|
|
27
|
+
"button",
|
|
28
|
+
"div",
|
|
29
|
+
"form",
|
|
30
|
+
"h2",
|
|
31
|
+
"h3",
|
|
32
|
+
"img",
|
|
33
|
+
"input",
|
|
34
|
+
"label",
|
|
35
|
+
"li",
|
|
36
|
+
"nav",
|
|
37
|
+
"ol",
|
|
38
|
+
"p",
|
|
39
|
+
"select",
|
|
40
|
+
"span",
|
|
41
|
+
"svg",
|
|
42
|
+
"ul"
|
|
43
|
+
];
|
|
44
|
+
var Primitive = NODES.reduce((primitive, node) => {
|
|
45
|
+
const Slot = createSlot(`Primitive.${node}`);
|
|
46
|
+
const Node = React.forwardRef((props, forwardedRef) => {
|
|
47
|
+
const { asChild, ...primitiveProps } = props;
|
|
48
|
+
const Comp = asChild ? Slot : node;
|
|
49
|
+
if (typeof window !== "undefined") {
|
|
50
|
+
window[Symbol.for("radix-ui")] = true;
|
|
51
|
+
}
|
|
52
|
+
return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });
|
|
53
|
+
});
|
|
54
|
+
Node.displayName = `Primitive.${node}`;
|
|
55
|
+
return { ...primitive, [node]: Node };
|
|
56
|
+
}, {});
|
|
57
|
+
|
|
58
|
+
var NAME = "Label";
|
|
59
|
+
var Label$1 = React.forwardRef((props, forwardedRef) => {
|
|
60
|
+
return /* @__PURE__ */ jsx(
|
|
61
|
+
Primitive.label,
|
|
62
|
+
{
|
|
63
|
+
...props,
|
|
64
|
+
ref: forwardedRef,
|
|
65
|
+
onMouseDown: (event) => {
|
|
66
|
+
const target = event.target;
|
|
67
|
+
if (target.closest("button, input, select, textarea")) return;
|
|
68
|
+
props.onMouseDown?.(event);
|
|
69
|
+
if (!event.defaultPrevented && event.detail > 1) event.preventDefault();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
});
|
|
74
|
+
Label$1.displayName = NAME;
|
|
75
|
+
var Root = Label$1;
|
|
76
|
+
|
|
77
|
+
function Label({ className, ...props }) {
|
|
78
|
+
return /* @__PURE__ */ jsx(
|
|
79
|
+
Root,
|
|
80
|
+
{
|
|
81
|
+
"data-slot": "label",
|
|
82
|
+
className: cn(
|
|
83
|
+
"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
|
|
84
|
+
className
|
|
85
|
+
),
|
|
86
|
+
...props
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const TextField = ({
|
|
92
|
+
label,
|
|
93
|
+
message,
|
|
94
|
+
required = false,
|
|
95
|
+
className,
|
|
96
|
+
id,
|
|
97
|
+
...props
|
|
98
|
+
}) => {
|
|
99
|
+
const inputId = id || `textfield-${Math.random().toString(36).substr(2, 9)}`;
|
|
100
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
101
|
+
label && /* @__PURE__ */ jsxs(Label, { htmlFor: inputId, children: [
|
|
102
|
+
label,
|
|
103
|
+
required && /* @__PURE__ */ jsx("span", { className: "text-destructive ml-1", children: "*" })
|
|
104
|
+
] }),
|
|
105
|
+
/* @__PURE__ */ jsx(
|
|
106
|
+
Input,
|
|
107
|
+
{
|
|
108
|
+
id: inputId,
|
|
109
|
+
className: cn(className),
|
|
110
|
+
"aria-describedby": message ? `${inputId}-message` : void 0,
|
|
111
|
+
...props
|
|
112
|
+
}
|
|
113
|
+
),
|
|
114
|
+
message && /* @__PURE__ */ jsx("p", { id: `${inputId}-message`, className: "text-xs text-muted-foreground", children: message })
|
|
115
|
+
] });
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
export { TextField as T };
|
|
119
|
+
//# sourceMappingURL=TextField-bmiQJ7hv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextField-bmiQJ7hv.js","sources":["../shadcn/shadcnInput/Input.tsx","../node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-label/dist/index.mjs","../shadcn/shadcnLabel/Label.tsx","../lib/components/TextField/TextField.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot='input'\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import * as LabelPrimitive from '@radix-ui/react-label';\nimport * as React from 'react';\n\nimport { cn } from '../utils';\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot='label'\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","import React from 'react';\nimport { Input } from '../../../shadcn/shadcnInput';\nimport { Label } from '../../../shadcn/shadcnLabel';\nimport { cn } from '../../../shadcn/utils';\n\nexport interface TextFieldProps extends React.ComponentProps<'input'> {\n /**\n * Label for the field\n */\n label?: string;\n\n /**\n * Helper or error message to display below the field\n */\n message?: string;\n\n /**\n * Whether the field is required\n */\n required?: boolean;\n}\n\n// TextField molecule - Input + Label composition\nexport const TextField: React.FC<TextFieldProps> = ({\n label,\n message,\n required = false,\n className,\n id,\n ...props\n}) => {\n const inputId = id || `textfield-${Math.random().toString(36).substr(2, 9)}`;\n\n return (\n <div className=\"space-y-2\">\n {label && (\n <Label htmlFor={inputId}>\n {label}\n {required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n )}\n\n <Input\n id={inputId}\n className={cn(className)}\n aria-describedby={message ? `${inputId}-message` : undefined}\n {...props}\n />\n\n {message && (\n <p id={`${inputId}-message`} className=\"text-xs text-muted-foreground\">\n {message}\n </p>\n )}\n </div>\n );\n};\n"],"names":["Label","LabelPrimitive.Root"],"mappings":"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","x_google_ignoreList":[1,2]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { B as Button } from './Button-CCQVCZBc.js';
|
|
4
|
+
|
|
5
|
+
const ThemeToggle = ({ className, size = "md" }) => {
|
|
6
|
+
const [theme, setTheme] = useState("light");
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
const savedTheme = localStorage.getItem("theme");
|
|
9
|
+
const systemTheme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
10
|
+
const initialTheme = savedTheme || systemTheme;
|
|
11
|
+
setTheme(initialTheme);
|
|
12
|
+
updateDocumentTheme(initialTheme);
|
|
13
|
+
}, []);
|
|
14
|
+
const updateDocumentTheme = (newTheme) => {
|
|
15
|
+
const root = document.documentElement;
|
|
16
|
+
if (newTheme === "dark") {
|
|
17
|
+
root.classList.add("dark");
|
|
18
|
+
} else {
|
|
19
|
+
root.classList.remove("dark");
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const toggleTheme = () => {
|
|
23
|
+
const newTheme = theme === "light" ? "dark" : "light";
|
|
24
|
+
setTheme(newTheme);
|
|
25
|
+
localStorage.setItem("theme", newTheme);
|
|
26
|
+
updateDocumentTheme(newTheme);
|
|
27
|
+
};
|
|
28
|
+
return /* @__PURE__ */ jsx(
|
|
29
|
+
Button,
|
|
30
|
+
{
|
|
31
|
+
variant: "ghost",
|
|
32
|
+
size: size === "md" ? "default" : size,
|
|
33
|
+
onClick: toggleTheme,
|
|
34
|
+
className,
|
|
35
|
+
"aria-label": `Switch to ${theme === "light" ? "dark" : "light"} theme`,
|
|
36
|
+
children: theme === "light" ? /* @__PURE__ */ jsx(
|
|
37
|
+
"svg",
|
|
38
|
+
{
|
|
39
|
+
className: "h-4 w-4",
|
|
40
|
+
fill: "none",
|
|
41
|
+
stroke: "currentColor",
|
|
42
|
+
viewBox: "0 0 24 24",
|
|
43
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
44
|
+
children: /* @__PURE__ */ jsx(
|
|
45
|
+
"path",
|
|
46
|
+
{
|
|
47
|
+
strokeLinecap: "round",
|
|
48
|
+
strokeLinejoin: "round",
|
|
49
|
+
strokeWidth: 2,
|
|
50
|
+
d: "M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
) : /* @__PURE__ */ jsx(
|
|
55
|
+
"svg",
|
|
56
|
+
{
|
|
57
|
+
className: "h-4 w-4",
|
|
58
|
+
fill: "none",
|
|
59
|
+
stroke: "currentColor",
|
|
60
|
+
viewBox: "0 0 24 24",
|
|
61
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
62
|
+
children: /* @__PURE__ */ jsx(
|
|
63
|
+
"path",
|
|
64
|
+
{
|
|
65
|
+
strokeLinecap: "round",
|
|
66
|
+
strokeLinejoin: "round",
|
|
67
|
+
strokeWidth: 2,
|
|
68
|
+
d: "M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export { ThemeToggle as T };
|
|
78
|
+
//# sourceMappingURL=ThemeToggle-HP4cegI7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeToggle-HP4cegI7.js","sources":["../lib/components/ThemeToggle/ThemeToggle.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Button } from '../Button/Button';\n\nexport interface ThemeToggleProps {\n /**\n * Custom className for the toggle button\n */\n className?: string;\n\n /**\n * Size of the toggle button\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const ThemeToggle: React.FC<ThemeToggleProps> = ({ className, size = 'md' }) => {\n const [theme, setTheme] = useState<'light' | 'dark'>('light');\n\n // Initialize theme from localStorage or system preference\n useEffect(() => {\n const savedTheme = localStorage.getItem('theme') as 'light' | 'dark' | null;\n const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n const initialTheme = savedTheme || systemTheme;\n\n setTheme(initialTheme);\n updateDocumentTheme(initialTheme);\n }, []);\n\n const updateDocumentTheme = (newTheme: 'light' | 'dark') => {\n const root = document.documentElement;\n if (newTheme === 'dark') {\n root.classList.add('dark');\n } else {\n root.classList.remove('dark');\n }\n };\n\n const toggleTheme = () => {\n const newTheme = theme === 'light' ? 'dark' : 'light';\n setTheme(newTheme);\n localStorage.setItem('theme', newTheme);\n updateDocumentTheme(newTheme);\n };\n\n return (\n <Button\n variant='ghost'\n size={size === 'md' ? 'default' : size}\n onClick={toggleTheme}\n className={className}\n aria-label={`Switch to ${theme === 'light' ? 'dark' : 'light'} theme`}\n >\n {theme === 'light' ? (\n <svg\n className='h-4 w-4'\n fill='none'\n stroke='currentColor'\n viewBox='0 0 24 24'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n d='M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z'\n />\n </svg>\n ) : (\n <svg\n className='h-4 w-4'\n fill='none'\n stroke='currentColor'\n viewBox='0 0 24 24'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n d='M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z'\n />\n </svg>\n )}\n </Button>\n );\n};\n"],"names":[],"mappings":";;;;AAeO,MAAM,cAA0C,CAAC,EAAE,SAAW,EAAA,IAAA,GAAO,MAAW,KAAA;AACrF,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAA2B,OAAO,CAAA;AAG5D,EAAA,SAAA,CAAU,MAAM;AACd,IAAM,MAAA,UAAA,GAAa,YAAa,CAAA,OAAA,CAAQ,OAAO,CAAA;AAC/C,IAAA,MAAM,cAAc,MAAO,CAAA,UAAA,CAAW,8BAA8B,CAAA,CAAE,UAAU,MAAS,GAAA,OAAA;AACzF,IAAA,MAAM,eAAe,UAAc,IAAA,WAAA;AAEnC,IAAA,QAAA,CAAS,YAAY,CAAA;AACrB,IAAA,mBAAA,CAAoB,YAAY,CAAA;AAAA,GAClC,EAAG,EAAE,CAAA;AAEL,EAAM,MAAA,mBAAA,GAAsB,CAAC,QAA+B,KAAA;AAC1D,IAAA,MAAM,OAAO,QAAS,CAAA,eAAA;AACtB,IAAA,IAAI,aAAa,MAAQ,EAAA;AACvB,MAAK,IAAA,CAAA,SAAA,CAAU,IAAI,MAAM,CAAA;AAAA,KACpB,MAAA;AACL,MAAK,IAAA,CAAA,SAAA,CAAU,OAAO,MAAM,CAAA;AAAA;AAC9B,GACF;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAM,MAAA,QAAA,GAAW,KAAU,KAAA,OAAA,GAAU,MAAS,GAAA,OAAA;AAC9C,IAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,IAAa,YAAA,CAAA,OAAA,CAAQ,SAAS,QAAQ,CAAA;AACtC,IAAA,mBAAA,CAAoB,QAAQ,CAAA;AAAA,GAC9B;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,OAAA;AAAA,MACR,IAAA,EAAM,IAAS,KAAA,IAAA,GAAO,SAAY,GAAA,IAAA;AAAA,MAClC,OAAS,EAAA,WAAA;AAAA,MACT,SAAA;AAAA,MACA,YAAY,EAAA,CAAA,UAAA,EAAa,KAAU,KAAA,OAAA,GAAU,SAAS,OAAO,CAAA,MAAA,CAAA;AAAA,MAE5D,oBAAU,OACT,mBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAU,EAAA,SAAA;AAAA,UACV,IAAK,EAAA,MAAA;AAAA,UACL,MAAO,EAAA,cAAA;AAAA,UACP,OAAQ,EAAA,WAAA;AAAA,UACR,KAAM,EAAA,4BAAA;AAAA,UAEN,QAAA,kBAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,aAAc,EAAA,OAAA;AAAA,cACd,cAAe,EAAA,OAAA;AAAA,cACf,WAAa,EAAA,CAAA;AAAA,cACb,CAAE,EAAA;AAAA;AAAA;AACJ;AAAA,OAGF,mBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAU,EAAA,SAAA;AAAA,UACV,IAAK,EAAA,MAAA;AAAA,UACL,MAAO,EAAA,cAAA;AAAA,UACP,OAAQ,EAAA,WAAA;AAAA,UACR,KAAM,EAAA,4BAAA;AAAA,UAEN,QAAA,kBAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,aAAc,EAAA,OAAA;AAAA,cACd,cAAe,EAAA,OAAA;AAAA,cACf,WAAa,EAAA,CAAA;AAAA,cACb,CAAE,EAAA;AAAA;AAAA;AACJ;AAAA;AACF;AAAA,GAEJ;AAEJ;;;;"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { c as cn } from './utils-BLJyPY44.js';
|
|
3
|
+
|
|
4
|
+
const variantMap = {
|
|
5
|
+
h1: "h1",
|
|
6
|
+
h2: "h2",
|
|
7
|
+
h3: "h3",
|
|
8
|
+
h4: "h4",
|
|
9
|
+
h5: "h5",
|
|
10
|
+
h6: "h6",
|
|
11
|
+
body1: "p",
|
|
12
|
+
body2: "p",
|
|
13
|
+
caption: "span",
|
|
14
|
+
overline: "span",
|
|
15
|
+
subtitle1: "h6",
|
|
16
|
+
subtitle2: "h6",
|
|
17
|
+
button: "span",
|
|
18
|
+
code: "code",
|
|
19
|
+
blockquote: "blockquote"
|
|
20
|
+
};
|
|
21
|
+
const Typography = ({
|
|
22
|
+
children,
|
|
23
|
+
variant = "body1",
|
|
24
|
+
intent = "default",
|
|
25
|
+
align = "left",
|
|
26
|
+
className,
|
|
27
|
+
...props
|
|
28
|
+
}) => {
|
|
29
|
+
const Component = variantMap[variant];
|
|
30
|
+
const getVariantClasses = () => {
|
|
31
|
+
switch (variant) {
|
|
32
|
+
case "h1":
|
|
33
|
+
return "scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl";
|
|
34
|
+
case "h2":
|
|
35
|
+
return "scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0";
|
|
36
|
+
case "h3":
|
|
37
|
+
return "scroll-m-20 text-2xl font-semibold tracking-tight";
|
|
38
|
+
case "h4":
|
|
39
|
+
return "scroll-m-20 text-xl font-semibold tracking-tight";
|
|
40
|
+
case "h5":
|
|
41
|
+
return "scroll-m-20 text-lg font-semibold tracking-tight";
|
|
42
|
+
case "h6":
|
|
43
|
+
return "scroll-m-20 text-base font-semibold tracking-tight";
|
|
44
|
+
case "body1":
|
|
45
|
+
return "leading-7";
|
|
46
|
+
case "body2":
|
|
47
|
+
return "text-sm leading-6";
|
|
48
|
+
case "caption":
|
|
49
|
+
return "text-xs text-muted-foreground";
|
|
50
|
+
case "overline":
|
|
51
|
+
return "text-xs font-medium uppercase tracking-wide text-muted-foreground";
|
|
52
|
+
case "subtitle1":
|
|
53
|
+
return "text-lg font-medium";
|
|
54
|
+
case "subtitle2":
|
|
55
|
+
return "text-sm font-medium";
|
|
56
|
+
case "button":
|
|
57
|
+
return "text-sm font-medium";
|
|
58
|
+
case "code":
|
|
59
|
+
return "relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold";
|
|
60
|
+
case "blockquote":
|
|
61
|
+
return "mt-6 border-l-2 pl-6 italic";
|
|
62
|
+
default:
|
|
63
|
+
return "leading-7";
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const getIntentClasses = () => {
|
|
67
|
+
switch (intent) {
|
|
68
|
+
case "primary":
|
|
69
|
+
return "text-primary";
|
|
70
|
+
case "secondary":
|
|
71
|
+
return "text-secondary-foreground";
|
|
72
|
+
case "muted":
|
|
73
|
+
return "text-muted-foreground";
|
|
74
|
+
case "success":
|
|
75
|
+
return "text-green-600 dark:text-green-400";
|
|
76
|
+
case "warning":
|
|
77
|
+
return "text-yellow-600 dark:text-yellow-400";
|
|
78
|
+
case "error":
|
|
79
|
+
return "text-destructive";
|
|
80
|
+
default:
|
|
81
|
+
return "text-foreground";
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
const getAlignClasses = () => {
|
|
85
|
+
switch (align) {
|
|
86
|
+
case "center":
|
|
87
|
+
return "text-center";
|
|
88
|
+
case "right":
|
|
89
|
+
return "text-right";
|
|
90
|
+
case "justify":
|
|
91
|
+
return "text-justify";
|
|
92
|
+
default:
|
|
93
|
+
return "text-left";
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
return /* @__PURE__ */ jsx(Component, { className: cn(getVariantClasses(), getIntentClasses(), getAlignClasses(), className), ...props, children });
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export { Typography as T };
|
|
100
|
+
//# sourceMappingURL=Typography-BCxuB5sP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Typography-BCxuB5sP.js","sources":["../lib/components/Typography/Typography.tsx"],"sourcesContent":["import React from 'react';\nimport { cn } from '../../../shadcn/utils';\n\nexport interface TypographyProps {\n /**\n * The content to render\n */\n children: React.ReactNode;\n\n /**\n * The semantic variant of the typography\n */\n variant?:\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'body1'\n | 'body2'\n | 'caption'\n | 'overline'\n | 'subtitle1'\n | 'subtitle2'\n | 'button'\n | 'code'\n | 'blockquote';\n\n /**\n * The color intent of the text\n */\n intent?: 'default' | 'primary' | 'secondary' | 'muted' | 'success' | 'warning' | 'error';\n\n /**\n * Whether text should be centered\n */\n align?: 'left' | 'center' | 'right' | 'justify';\n\n /**\n * Custom className\n */\n className?: string;\n}\n\nconst variantMap = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n body1: 'p',\n body2: 'p',\n caption: 'span',\n overline: 'span',\n subtitle1: 'h6',\n subtitle2: 'h6',\n button: 'span',\n code: 'code',\n blockquote: 'blockquote',\n} as const;\n\nexport const Typography: React.FC<TypographyProps> = ({\n children,\n variant = 'body1',\n intent = 'default',\n align = 'left',\n className,\n ...props\n}) => {\n const Component = variantMap[variant];\n\n const getVariantClasses = () => {\n switch (variant) {\n case 'h1':\n return 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl';\n case 'h2':\n return 'scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0';\n case 'h3':\n return 'scroll-m-20 text-2xl font-semibold tracking-tight';\n case 'h4':\n return 'scroll-m-20 text-xl font-semibold tracking-tight';\n case 'h5':\n return 'scroll-m-20 text-lg font-semibold tracking-tight';\n case 'h6':\n return 'scroll-m-20 text-base font-semibold tracking-tight';\n case 'body1':\n return 'leading-7';\n case 'body2':\n return 'text-sm leading-6';\n case 'caption':\n return 'text-xs text-muted-foreground';\n case 'overline':\n return 'text-xs font-medium uppercase tracking-wide text-muted-foreground';\n case 'subtitle1':\n return 'text-lg font-medium';\n case 'subtitle2':\n return 'text-sm font-medium';\n case 'button':\n return 'text-sm font-medium';\n case 'code':\n return 'relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold';\n case 'blockquote':\n return 'mt-6 border-l-2 pl-6 italic';\n default:\n return 'leading-7';\n }\n };\n\n const getIntentClasses = () => {\n switch (intent) {\n case 'primary':\n return 'text-primary';\n case 'secondary':\n return 'text-secondary-foreground';\n case 'muted':\n return 'text-muted-foreground';\n case 'success':\n return 'text-green-600 dark:text-green-400';\n case 'warning':\n return 'text-yellow-600 dark:text-yellow-400';\n case 'error':\n return 'text-destructive';\n default:\n return 'text-foreground';\n }\n };\n\n const getAlignClasses = () => {\n switch (align) {\n case 'center':\n return 'text-center';\n case 'right':\n return 'text-right';\n case 'justify':\n return 'text-justify';\n default:\n return 'text-left';\n }\n };\n\n return (\n <Component className={cn(getVariantClasses(), getIntentClasses(), getAlignClasses(), className)} {...props}>\n {children}\n </Component>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import MuiButton from '@mui/material/Button';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
|
|
5
|
-
const INTENT_TO_MUI_PROPS = {
|
|
6
|
-
primary: { variant: "contained", color: "primary" },
|
|
7
|
-
secondary: { variant: "outlined", color: "primary" },
|
|
8
|
-
destructive: { variant: "contained", color: "error" },
|
|
9
|
-
ghost: { variant: "text", color: "inherit" }
|
|
10
|
-
};
|
|
11
|
-
const Button = React.memo(
|
|
12
|
-
({ intent = "primary", size = "medium", children, ...props }) => {
|
|
13
|
-
const muiProps = INTENT_TO_MUI_PROPS[intent];
|
|
14
|
-
return /* @__PURE__ */ jsx(MuiButton, { ...muiProps, size, "data-intent": intent, ...props, children });
|
|
15
|
-
}
|
|
16
|
-
);
|
|
17
|
-
Button.displayName = "Button";
|
|
18
|
-
|
|
19
|
-
export { Button };
|
|
1
|
+
export { B as Button } from '../Button-CCQVCZBc.js';
|
|
20
2
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":[
|
|
1
|
+
{"version":3,"file":"Button.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,29 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import MuiTextField from '@mui/material/TextField';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
|
|
5
|
-
const STATE_TO_COLOR_MAP = {
|
|
6
|
-
normal: "primary",
|
|
7
|
-
error: "error",
|
|
8
|
-
success: "success",
|
|
9
|
-
warning: "warning"
|
|
10
|
-
};
|
|
11
|
-
const TextField = React.memo(
|
|
12
|
-
({ state = "normal", message, fullWidth = true, ...props }) => {
|
|
13
|
-
return /* @__PURE__ */ jsx(
|
|
14
|
-
MuiTextField,
|
|
15
|
-
{
|
|
16
|
-
variant: "filled",
|
|
17
|
-
color: STATE_TO_COLOR_MAP[state],
|
|
18
|
-
error: state === "error",
|
|
19
|
-
helperText: message,
|
|
20
|
-
fullWidth,
|
|
21
|
-
...props
|
|
22
|
-
}
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
);
|
|
26
|
-
TextField.displayName = "TextField";
|
|
27
|
-
|
|
28
|
-
export { TextField };
|
|
1
|
+
export { T as TextField } from '../TextField-bmiQJ7hv.js';
|
|
29
2
|
//# sourceMappingURL=TextField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.js","sources":[
|
|
1
|
+
{"version":3,"file":"TextField.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeToggle.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|