@fransek/ui 0.1.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.
Files changed (76) hide show
  1. package/README.md +9 -0
  2. package/dist/cjs/components/button/Button.d.ts +25 -0
  3. package/dist/cjs/components/button/Button.js +27 -0
  4. package/dist/cjs/components/button/Button.js.map +1 -0
  5. package/dist/cjs/components/button/index.d.ts +1 -0
  6. package/dist/cjs/components/checkbox/Checkbox.d.ts +13 -0
  7. package/dist/cjs/components/checkbox/Checkbox.js +28 -0
  8. package/dist/cjs/components/checkbox/Checkbox.js.map +1 -0
  9. package/dist/cjs/components/checkbox/index.d.ts +1 -0
  10. package/dist/cjs/components/checkbox-group/CheckboxGroup.d.ts +14 -0
  11. package/dist/cjs/components/checkbox-group/CheckboxGroup.js +42 -0
  12. package/dist/cjs/components/checkbox-group/CheckboxGroup.js.map +1 -0
  13. package/dist/cjs/components/checkbox-group/index.d.ts +1 -0
  14. package/dist/cjs/components/field/Field.d.ts +16 -0
  15. package/dist/cjs/components/field/Field.js +27 -0
  16. package/dist/cjs/components/field/Field.js.map +1 -0
  17. package/dist/cjs/components/field/index.d.ts +1 -0
  18. package/dist/cjs/components/input/Input.d.ts +8 -0
  19. package/dist/cjs/components/input/Input.js +14 -0
  20. package/dist/cjs/components/input/Input.js.map +1 -0
  21. package/dist/cjs/components/input/index.d.ts +1 -0
  22. package/dist/cjs/components/radio/Radio.d.ts +18 -0
  23. package/dist/cjs/components/radio/Radio.js +47 -0
  24. package/dist/cjs/components/radio/Radio.js.map +1 -0
  25. package/dist/cjs/components/radio/index.d.ts +1 -0
  26. package/dist/cjs/components/select/Select.d.ts +24 -0
  27. package/dist/cjs/components/select/Select.js +29 -0
  28. package/dist/cjs/components/select/Select.js.map +1 -0
  29. package/dist/cjs/components/select/index.d.ts +1 -0
  30. package/dist/cjs/index.css +1 -0
  31. package/dist/cjs/index.d.ts +8 -0
  32. package/dist/cjs/index.js +26 -0
  33. package/dist/cjs/index.js.map +1 -0
  34. package/dist/cjs/lib/types.d.ts +7 -0
  35. package/dist/cjs/lib/utils.d.ts +10 -0
  36. package/dist/cjs/lib/utils.js +11 -0
  37. package/dist/cjs/lib/utils.js.map +1 -0
  38. package/dist/cjs/theme.css +1 -0
  39. package/dist/esm/components/button/Button.d.ts +25 -0
  40. package/dist/esm/components/button/Button.js +25 -0
  41. package/dist/esm/components/button/Button.js.map +1 -0
  42. package/dist/esm/components/button/index.d.ts +1 -0
  43. package/dist/esm/components/checkbox/Checkbox.d.ts +13 -0
  44. package/dist/esm/components/checkbox/Checkbox.js +26 -0
  45. package/dist/esm/components/checkbox/Checkbox.js.map +1 -0
  46. package/dist/esm/components/checkbox/index.d.ts +1 -0
  47. package/dist/esm/components/checkbox-group/CheckboxGroup.d.ts +14 -0
  48. package/dist/esm/components/checkbox-group/CheckboxGroup.js +20 -0
  49. package/dist/esm/components/checkbox-group/CheckboxGroup.js.map +1 -0
  50. package/dist/esm/components/checkbox-group/index.d.ts +1 -0
  51. package/dist/esm/components/field/Field.d.ts +16 -0
  52. package/dist/esm/components/field/Field.js +23 -0
  53. package/dist/esm/components/field/Field.js.map +1 -0
  54. package/dist/esm/components/field/index.d.ts +1 -0
  55. package/dist/esm/components/input/Input.d.ts +8 -0
  56. package/dist/esm/components/input/Input.js +12 -0
  57. package/dist/esm/components/input/Input.js.map +1 -0
  58. package/dist/esm/components/input/index.d.ts +1 -0
  59. package/dist/esm/components/radio/Radio.d.ts +18 -0
  60. package/dist/esm/components/radio/Radio.js +25 -0
  61. package/dist/esm/components/radio/Radio.js.map +1 -0
  62. package/dist/esm/components/radio/index.d.ts +1 -0
  63. package/dist/esm/components/select/Select.d.ts +24 -0
  64. package/dist/esm/components/select/Select.js +27 -0
  65. package/dist/esm/components/select/Select.js.map +1 -0
  66. package/dist/esm/components/select/index.d.ts +1 -0
  67. package/dist/esm/index.css +70 -0
  68. package/dist/esm/index.d.ts +8 -0
  69. package/dist/esm/index.js +9 -0
  70. package/dist/esm/index.js.map +1 -0
  71. package/dist/esm/lib/types.d.ts +7 -0
  72. package/dist/esm/lib/utils.d.ts +10 -0
  73. package/dist/esm/lib/utils.js +9 -0
  74. package/dist/esm/lib/utils.js.map +1 -0
  75. package/dist/esm/theme.css +72 -0
  76. package/package.json +121 -0
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # Fransek UI
2
+
3
+ ```
4
+ pnpm add @fransek/ui @base-ui/react clsx tailwind-merge tailwindcss lucide-react
5
+ ```
6
+
7
+ ```
8
+ import "@fransek/ui/theme";
9
+ ```
@@ -0,0 +1,25 @@
1
+ import { ButtonProps as BaseButtonProps } from "@base-ui/react/button";
2
+ import React from "react";
3
+ export interface ButtonProps extends BaseButtonProps {
4
+ variant?: ButtonVariant;
5
+ size?: ButtonSize;
6
+ }
7
+ export declare function Button({ variant, size, children, className, ...props }: ButtonProps): React.JSX.Element;
8
+ declare const variantStyles: {
9
+ primary: string;
10
+ secondary: string;
11
+ muted: string;
12
+ error: string;
13
+ success: string;
14
+ outline: string;
15
+ ghost: string;
16
+ link: string;
17
+ };
18
+ declare const sizeStyles: {
19
+ sm: string;
20
+ md: string;
21
+ lg: string;
22
+ };
23
+ export type ButtonVariant = keyof typeof variantStyles;
24
+ export type ButtonSize = keyof typeof sizeStyles;
25
+ export {};
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ var button = require('@base-ui/react/button');
4
+ var React = require('react');
5
+ var utils = require('../../lib/utils.js');
6
+
7
+ function Button({ variant = "primary", size = "md", children, className, ...props }) {
8
+ return (React.createElement(button.Button, { className: utils.cn("font-inherit focus-visible:outline-highlight m-0 flex items-center justify-center gap-2 rounded-lg px-3 py-2 outline-0 select-none focus-visible:outline-2 focus-visible:outline-offset-2 data-disabled:cursor-not-allowed data-disabled:opacity-60", variantStyles[variant], sizeStyles[size], className), focusableWhenDisabled: true, ...props }, children));
9
+ }
10
+ const variantStyles = {
11
+ primary: "bg-primary text-on-primary hover:bg-primary/90 active:bg-primary/80",
12
+ secondary: "bg-secondary text-on-secondary hover:bg-secondary/90 active:bg-secondary/80",
13
+ muted: "bg-muted text-on-muted hover:bg-muted/90 active:bg-muted/80",
14
+ error: "bg-error text-on-error hover:bg-error/90 active:bg-error/80",
15
+ success: "bg-success text-on-success hover:bg-success/90 active:bg-success/80",
16
+ outline: "bg-transparent border text-foreground hover:bg-muted/10 active:bg-muted/20",
17
+ ghost: "bg-transparent text-foreground hover:bg-muted/10 active:bg-muted/20",
18
+ link: "bg-transparent text-link-foreground hover:underline underline-offset-4",
19
+ };
20
+ const sizeStyles = {
21
+ sm: "text-sm",
22
+ md: "text-base",
23
+ lg: "text-lg",
24
+ };
25
+
26
+ exports.Button = Button;
27
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import {\n Button as BaseButton,\n ButtonProps as BaseButtonProps,\n} from \"@base-ui/react/button\";\nimport React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface ButtonProps extends BaseButtonProps {\n variant?: ButtonVariant;\n size?: ButtonSize;\n}\n\nexport function Button({\n variant = \"primary\",\n size = \"md\",\n children,\n className,\n ...props\n}: ButtonProps) {\n return (\n <BaseButton\n className={cn(\n \"font-inherit focus-visible:outline-highlight m-0 flex items-center justify-center gap-2 rounded-lg px-3 py-2 outline-0 select-none focus-visible:outline-2 focus-visible:outline-offset-2 data-disabled:cursor-not-allowed data-disabled:opacity-60\",\n variantStyles[variant],\n sizeStyles[size],\n className,\n )}\n focusableWhenDisabled\n {...props}\n >\n {children}\n </BaseButton>\n );\n}\n\nconst variantStyles = {\n primary:\n \"bg-primary text-on-primary hover:bg-primary/90 active:bg-primary/80\",\n secondary:\n \"bg-secondary text-on-secondary hover:bg-secondary/90 active:bg-secondary/80\",\n muted: \"bg-muted text-on-muted hover:bg-muted/90 active:bg-muted/80\",\n error: \"bg-error text-on-error hover:bg-error/90 active:bg-error/80\",\n success:\n \"bg-success text-on-success hover:bg-success/90 active:bg-success/80\",\n outline:\n \"bg-transparent border text-foreground hover:bg-muted/10 active:bg-muted/20\",\n ghost: \"bg-transparent text-foreground hover:bg-muted/10 active:bg-muted/20\",\n link: \"bg-transparent text-link-foreground hover:underline underline-offset-4\",\n};\n\nconst sizeStyles = {\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-lg\",\n};\n\nexport type ButtonVariant = keyof typeof variantStyles;\nexport type ButtonSize = keyof typeof sizeStyles;\n"],"names":["BaseButton","cn"],"mappings":";;;;;;SAYgB,MAAM,CAAC,EACrB,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACI,EAAA;AACZ,IAAA,QACE,KAAA,CAAA,aAAA,CAACA,aAAU,EAAA,EACT,SAAS,EAAEC,QAAE,CACX,qPAAqP,EACrP,aAAa,CAAC,OAAO,CAAC,EACtB,UAAU,CAAC,IAAI,CAAC,EAChB,SAAS,CACV,EACD,qBAAqB,EAAA,IAAA,EAAA,GACjB,KAAK,EAAA,EAER,QAAQ,CACE;AAEjB;AAEA,MAAM,aAAa,GAAG;AACpB,IAAA,OAAO,EACL,qEAAqE;AACvE,IAAA,SAAS,EACP,6EAA6E;AAC/E,IAAA,KAAK,EAAE,6DAA6D;AACpE,IAAA,KAAK,EAAE,6DAA6D;AACpE,IAAA,OAAO,EACL,qEAAqE;AACvE,IAAA,OAAO,EACL,4EAA4E;AAC9E,IAAA,KAAK,EAAE,qEAAqE;AAC5E,IAAA,IAAI,EAAE,wEAAwE;CAC/E;AAED,MAAM,UAAU,GAAG;AACjB,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;CACd;;;;"}
@@ -0,0 +1 @@
1
+ export * from "./Button";
@@ -0,0 +1,13 @@
1
+ import { CheckboxRootProps as BaseCheckboxRootProps, CheckboxIndicatorProps } from "@base-ui/react/checkbox";
2
+ import React from "react";
3
+ import { BasicFieldProps } from "../../lib/utils";
4
+ import { FieldProps } from "../field/Field";
5
+ interface CheckboxProps extends BaseCheckboxRootProps, Omit<BasicFieldProps, "label"> {
6
+ label?: React.ReactNode;
7
+ labelProps?: React.LabelHTMLAttributes<HTMLLabelElement>;
8
+ indicatorProps?: CheckboxIndicatorProps;
9
+ iconProps?: React.SVGProps<SVGSVGElement>;
10
+ fieldProps?: FieldProps;
11
+ }
12
+ export declare function Checkbox({ label, className, fieldProps, description, isValidating: _isValidating, isValidatingMessage, errorMessage, labelProps: { className: labelClassName, ...labelProps }, indicatorProps: { className: indicatorClassName, ...indicatorProps }, iconProps: { className: iconClassName, ...iconProps }, ...props }: CheckboxProps): React.JSX.Element;
13
+ export {};
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var checkbox = require('@base-ui/react/checkbox');
4
+ var field = require('@base-ui/react/field');
5
+ var lucideReact = require('lucide-react');
6
+ var React = require('react');
7
+ var utils = require('../../lib/utils.js');
8
+ var CheckboxGroup = require('../checkbox-group/CheckboxGroup.js');
9
+ var Field = require('../field/Field.js');
10
+
11
+ function Checkbox({ label, className, fieldProps, description, isValidating: _isValidating, isValidatingMessage, errorMessage, labelProps: { className: labelClassName, ...labelProps } = {}, indicatorProps: { className: indicatorClassName, ...indicatorProps } = {}, iconProps: { className: iconClassName, ...iconProps } = {}, ...props }) {
12
+ const labelId = React.useId();
13
+ const isInCheckboxGroup = CheckboxGroup.useCheckboxGroupContext();
14
+ const { isValidating: groupIsValidating } = Field.useFieldContext();
15
+ const isValidating = isInCheckboxGroup ? groupIsValidating : _isValidating;
16
+ const children = (React.createElement(field.Field.Label, { className: utils.cn("text-foreground flex items-center gap-2 text-base", labelClassName), ...labelProps },
17
+ React.createElement(checkbox.Checkbox.Root, { className: utils.cn("data-validating:not-data-invalid:animate-validating data-invalid:border-error-foreground data-invalid:data-checked:bg-error data-invalid:data-checked:border-error data-checked:bg-primary data-checked:border-primary focus-visible:outline-highlight flex size-5 items-center justify-center rounded-sm border outline-offset-2 focus-visible:outline-2", className), "aria-labelledby": labelId, "data-validating": isValidating ? "" : undefined, ...props },
18
+ React.createElement(checkbox.Checkbox.Indicator, { className: utils.cn("text-on-primary data-invalid:border-error data-invalid:bg-error flex data-unchecked:hidden", indicatorClassName), ...indicatorProps },
19
+ React.createElement(lucideReact.CheckIcon, { className: utils.cn("size-4", iconClassName), ...iconProps }))),
20
+ React.createElement("span", { id: labelId }, label)));
21
+ if (isInCheckboxGroup) {
22
+ return React.createElement(field.Field.Item, null, children);
23
+ }
24
+ return (React.createElement(Field.Field, { isValidating: isValidating, isValidatingMessage: isValidatingMessage, errorMessage: errorMessage, description: description, ...fieldProps }, children));
25
+ }
26
+
27
+ exports.Checkbox = Checkbox;
28
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import {\n Checkbox as BaseCheckbox,\n CheckboxRootProps as BaseCheckboxRootProps,\n CheckboxIndicatorProps,\n} from \"@base-ui/react/checkbox\";\nimport { Field as BaseField } from \"@base-ui/react/field\";\nimport { CheckIcon } from \"lucide-react\";\nimport React from \"react\";\nimport { BasicFieldProps, cn } from \"../../lib/utils\";\nimport { useCheckboxGroupContext } from \"../checkbox-group/CheckboxGroup\";\nimport { Field, FieldProps, useFieldContext } from \"../field/Field\";\n\ninterface CheckboxProps\n extends BaseCheckboxRootProps, Omit<BasicFieldProps, \"label\"> {\n label?: React.ReactNode;\n labelProps?: React.LabelHTMLAttributes<HTMLLabelElement>;\n indicatorProps?: CheckboxIndicatorProps;\n iconProps?: React.SVGProps<SVGSVGElement>;\n fieldProps?: FieldProps;\n}\n\nexport function Checkbox({\n label,\n className,\n fieldProps,\n description,\n isValidating: _isValidating,\n isValidatingMessage,\n errorMessage,\n labelProps: { className: labelClassName, ...labelProps } = {},\n indicatorProps: { className: indicatorClassName, ...indicatorProps } = {},\n iconProps: { className: iconClassName, ...iconProps } = {},\n ...props\n}: CheckboxProps) {\n const labelId = React.useId();\n const isInCheckboxGroup = useCheckboxGroupContext();\n const { isValidating: groupIsValidating } = useFieldContext();\n const isValidating = isInCheckboxGroup ? groupIsValidating : _isValidating;\n\n const children = (\n <BaseField.Label\n className={cn(\n \"text-foreground flex items-center gap-2 text-base\",\n labelClassName,\n )}\n {...labelProps}\n >\n <BaseCheckbox.Root\n className={cn(\n \"data-validating:not-data-invalid:animate-validating data-invalid:border-error-foreground data-invalid:data-checked:bg-error data-invalid:data-checked:border-error data-checked:bg-primary data-checked:border-primary focus-visible:outline-highlight flex size-5 items-center justify-center rounded-sm border outline-offset-2 focus-visible:outline-2\",\n className,\n )}\n aria-labelledby={labelId}\n data-validating={isValidating ? \"\" : undefined}\n {...props}\n >\n <BaseCheckbox.Indicator\n className={cn(\n \"text-on-primary data-invalid:border-error data-invalid:bg-error flex data-unchecked:hidden\",\n indicatorClassName,\n )}\n {...indicatorProps}\n >\n <CheckIcon className={cn(\"size-4\", iconClassName)} {...iconProps} />\n </BaseCheckbox.Indicator>\n </BaseCheckbox.Root>\n <span id={labelId}>{label}</span>\n </BaseField.Label>\n );\n\n if (isInCheckboxGroup) {\n return <BaseField.Item>{children}</BaseField.Item>;\n }\n\n return (\n <Field\n isValidating={isValidating}\n isValidatingMessage={isValidatingMessage}\n errorMessage={errorMessage}\n description={description}\n {...fieldProps}\n >\n {children}\n </Field>\n );\n}\n"],"names":["useCheckboxGroupContext","useFieldContext","BaseField","cn","BaseCheckbox","CheckIcon","Field"],"mappings":";;;;;;;;;;AAqBM,SAAU,QAAQ,CAAC,EACvB,KAAK,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EAAE,aAAa,EAC3B,mBAAmB,EACnB,YAAY,EACZ,UAAU,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAC7D,cAAc,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,EACzE,SAAS,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,EAC1D,GAAG,KAAK,EACM,EAAA;AACd,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE;AAC7B,IAAA,MAAM,iBAAiB,GAAGA,qCAAuB,EAAE;IACnD,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAGC,qBAAe,EAAE;IAC7D,MAAM,YAAY,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,aAAa;AAE1E,IAAA,MAAM,QAAQ,IACZ,KAAA,CAAA,aAAA,CAACC,WAAS,CAAC,KAAK,EAAA,EACd,SAAS,EAAEC,QAAE,CACX,mDAAmD,EACnD,cAAc,CACf,KACG,UAAU,EAAA;QAEd,KAAA,CAAA,aAAA,CAACC,iBAAY,CAAC,IAAI,EAAA,EAChB,SAAS,EAAED,QAAE,CACX,2VAA2V,EAC3V,SAAS,CACV,qBACgB,OAAO,EAAA,iBAAA,EACP,YAAY,GAAG,EAAE,GAAG,SAAS,EAAA,GAC1C,KAAK,EAAA;AAET,YAAA,KAAA,CAAA,aAAA,CAACC,iBAAY,CAAC,SAAS,EAAA,EACrB,SAAS,EAAED,QAAE,CACX,4FAA4F,EAC5F,kBAAkB,CACnB,KACG,cAAc,EAAA;AAElB,gBAAA,KAAA,CAAA,aAAA,CAACE,qBAAS,EAAA,EAAC,SAAS,EAAEF,QAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAA,GAAM,SAAS,EAAA,CAAI,CAC7C,CACP;QACpB,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,OAAO,EAAA,EAAG,KAAK,CAAQ,CACjB,CACnB;IAED,IAAI,iBAAiB,EAAE;AACrB,QAAA,OAAO,oBAACD,WAAS,CAAC,IAAI,EAAA,IAAA,EAAE,QAAQ,CAAkB;IACpD;IAEA,QACE,KAAA,CAAA,aAAA,CAACI,WAAK,EAAA,EACJ,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EAAA,GACpB,UAAU,EAAA,EAEb,QAAQ,CACH;AAEZ;;;;"}
@@ -0,0 +1 @@
1
+ export * from "./Checkbox";
@@ -0,0 +1,14 @@
1
+ import { CheckboxGroupProps as BaseCheckboxGroupProps } from "@base-ui/react/checkbox-group";
2
+ import { FieldsetLegendProps, FieldsetRootProps } from "@base-ui/react/fieldset";
3
+ import * as React from "react";
4
+ import { BasicFieldProps } from "../../lib/utils";
5
+ import { FieldProps } from "../field/Field";
6
+ interface CheckboxGroupProps extends BaseCheckboxGroupProps, BasicFieldProps {
7
+ children?: React.ReactNode;
8
+ fieldProps?: FieldProps;
9
+ fieldsetProps?: FieldsetRootProps;
10
+ legendProps?: FieldsetLegendProps;
11
+ }
12
+ export declare function CheckboxGroup({ children, label, isValidating, isValidatingMessage, errorMessage, description, fieldProps, fieldsetProps: { className: fieldsetClassName, ...fieldsetProps }, legendProps: { className: legendClassName, ...legendProps }, ...props }: CheckboxGroupProps): React.JSX.Element;
13
+ export declare function useCheckboxGroupContext(): boolean;
14
+ export {};
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ var checkboxGroup = require('@base-ui/react/checkbox-group');
4
+ var fieldset = require('@base-ui/react/fieldset');
5
+ var React = require('react');
6
+ var utils = require('../../lib/utils.js');
7
+ var Field = require('../field/Field.js');
8
+
9
+ function _interopNamespaceDefault(e) {
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
27
+
28
+ function CheckboxGroup({ children, label, isValidating, isValidatingMessage, errorMessage, description, fieldProps, fieldsetProps: { className: fieldsetClassName, ...fieldsetProps } = {}, legendProps: { className: legendClassName, ...legendProps } = {}, ...props }) {
29
+ return (React__namespace.createElement(CheckboxGroupContext.Provider, { value: true },
30
+ React__namespace.createElement(Field.Field, { isValidating: isValidating, isValidatingMessage: isValidatingMessage, errorMessage: errorMessage, description: description, ...fieldProps },
31
+ React__namespace.createElement(fieldset.Fieldset.Root, { render: React__namespace.createElement(checkboxGroup.CheckboxGroup, { ...props }), className: utils.cn("flex flex-col gap-1", fieldsetClassName), ...fieldsetProps },
32
+ React__namespace.createElement(fieldset.Fieldset.Legend, { className: utils.cn("text-foreground text-sm font-semibold", legendClassName), ...legendProps }, label),
33
+ children))));
34
+ }
35
+ const CheckboxGroupContext = React__namespace.createContext(false);
36
+ function useCheckboxGroupContext() {
37
+ return React__namespace.useContext(CheckboxGroupContext);
38
+ }
39
+
40
+ exports.CheckboxGroup = CheckboxGroup;
41
+ exports.useCheckboxGroupContext = useCheckboxGroupContext;
42
+ //# sourceMappingURL=CheckboxGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxGroup.js","sources":["../../../../src/components/checkbox-group/CheckboxGroup.tsx"],"sourcesContent":["import {\n CheckboxGroup as BaseCheckboxGroup,\n CheckboxGroupProps as BaseCheckboxGroupProps,\n} from \"@base-ui/react/checkbox-group\";\nimport {\n Fieldset,\n FieldsetLegendProps,\n FieldsetRootProps,\n} from \"@base-ui/react/fieldset\";\nimport * as React from \"react\";\nimport { BasicFieldProps, cn } from \"../../lib/utils\";\nimport { Field, FieldProps } from \"../field/Field\";\n\ninterface CheckboxGroupProps extends BaseCheckboxGroupProps, BasicFieldProps {\n children?: React.ReactNode;\n fieldProps?: FieldProps;\n fieldsetProps?: FieldsetRootProps;\n legendProps?: FieldsetLegendProps;\n}\n\nexport function CheckboxGroup({\n children,\n label,\n isValidating,\n isValidatingMessage,\n errorMessage,\n description,\n fieldProps,\n fieldsetProps: { className: fieldsetClassName, ...fieldsetProps } = {},\n legendProps: { className: legendClassName, ...legendProps } = {},\n ...props\n}: CheckboxGroupProps) {\n return (\n <CheckboxGroupContext.Provider value={true}>\n <Field\n isValidating={isValidating}\n isValidatingMessage={isValidatingMessage}\n errorMessage={errorMessage}\n description={description}\n {...fieldProps}\n >\n <Fieldset.Root\n render={<BaseCheckboxGroup {...props} />}\n className={cn(\"flex flex-col gap-1\", fieldsetClassName)}\n {...fieldsetProps}\n >\n <Fieldset.Legend\n className={cn(\n \"text-foreground text-sm font-semibold\",\n legendClassName,\n )}\n {...legendProps}\n >\n {label}\n </Fieldset.Legend>\n {children}\n </Fieldset.Root>\n </Field>\n </CheckboxGroupContext.Provider>\n );\n}\n\nconst CheckboxGroupContext = React.createContext<boolean>(false);\n\nexport function useCheckboxGroupContext() {\n return React.useContext(CheckboxGroupContext);\n}\n"],"names":["React","Field","Fieldset","BaseCheckboxGroup","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBM,SAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,aAAa,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,aAAa,EAAE,GAAG,EAAE,EACtE,WAAW,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,GAAG,EAAE,EAChE,GAAG,KAAK,EACW,EAAA;IACnB,QACEA,+BAAC,oBAAoB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,IAAI,EAAA;AACxC,QAAAA,gBAAA,CAAA,aAAA,CAACC,WAAK,EAAA,EACJ,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,KACpB,UAAU,EAAA;YAEdD,gBAAA,CAAA,aAAA,CAACE,iBAAQ,CAAC,IAAI,EAAA,EACZ,MAAM,EAAEF,gBAAA,CAAA,aAAA,CAACG,2BAAiB,EAAA,EAAA,GAAK,KAAK,GAAI,EACxC,SAAS,EAAEC,QAAE,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAAA,GACnD,aAAa,EAAA;AAEjB,gBAAAJ,gBAAA,CAAA,aAAA,CAACE,iBAAQ,CAAC,MAAM,EAAA,EACd,SAAS,EAAEE,QAAE,CACX,uCAAuC,EACvC,eAAe,CAChB,EAAA,GACG,WAAW,EAAA,EAEd,KAAK,CACU;AACjB,gBAAA,QAAQ,CACK,CACV,CACsB;AAEpC;AAEA,MAAM,oBAAoB,GAAGJ,gBAAK,CAAC,aAAa,CAAU,KAAK,CAAC;SAEhD,uBAAuB,GAAA;AACrC,IAAA,OAAOA,gBAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC;AAC/C;;;;;"}
@@ -0,0 +1 @@
1
+ export * from "./CheckboxGroup";
@@ -0,0 +1,16 @@
1
+ import { FieldRootProps as BaseFieldRootProps, FieldDescriptionProps, FieldErrorProps, FieldLabelProps } from "@base-ui/react/field";
2
+ import React from "react";
3
+ import { BasicFieldProps } from "../../lib/utils";
4
+ export interface FieldProps extends BaseFieldRootProps, BasicFieldProps {
5
+ labelProps?: FieldLabelProps;
6
+ errorMessageProps?: FieldErrorProps;
7
+ descriptionProps?: FieldDescriptionProps;
8
+ isValidatingMessageProps?: FieldDescriptionProps;
9
+ }
10
+ export declare function Field({ label, isValidating, isValidatingMessage, errorMessage, className, description, children, labelProps: { className: labelClassName, ...labelProps }, errorMessageProps: { className: errorMessageClassName, ...errorMessageProps }, descriptionProps: { className: descriptionClassName, ...descriptionProps }, isValidatingMessageProps: { className: isValidatingMessageClassName, ...isValidatingMessageProps }, ...props }: FieldProps): React.JSX.Element;
11
+ export declare const FieldContext: React.Context<{
12
+ isValidating: boolean;
13
+ }>;
14
+ export declare function useFieldContext(): {
15
+ isValidating: boolean;
16
+ };
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ var field = require('@base-ui/react/field');
4
+ var React = require('react');
5
+ var utils = require('../../lib/utils.js');
6
+
7
+ function Field({ label, isValidating, isValidatingMessage, errorMessage, className, description, children, labelProps: { className: labelClassName, ...labelProps } = {}, errorMessageProps: { className: errorMessageClassName, ...errorMessageProps } = {}, descriptionProps: { className: descriptionClassName, ...descriptionProps } = {}, isValidatingMessageProps: { className: isValidatingMessageClassName, ...isValidatingMessageProps } = {}, ...props }) {
8
+ const invalid = !!errorMessage;
9
+ return (React.createElement(FieldContext.Provider, { value: { isValidating: !!isValidating } },
10
+ React.createElement(field.Field.Root, { className: utils.cn("flex flex-col gap-1", className), invalid: invalid, "data-validating": isValidating ? "" : undefined, ...props },
11
+ label && (React.createElement(field.Field.Label, { className: utils.cn("text-foreground text-sm font-semibold", labelClassName), ...labelProps }, label)),
12
+ children,
13
+ React.createElement(field.Field.Error, { className: utils.cn("text-error-foreground text-sm", errorMessageClassName), match: invalid, ...errorMessageProps }, errorMessage),
14
+ isValidating && isValidatingMessage && !errorMessage && (React.createElement(field.Field.Description, { className: utils.cn("text-primary-foreground text-sm", isValidatingMessageClassName), ...isValidatingMessageProps }, isValidatingMessage)),
15
+ description && (React.createElement(field.Field.Description, { className: utils.cn("text-muted-foreground text-sm", descriptionClassName), ...descriptionProps }, description)))));
16
+ }
17
+ const FieldContext = React.createContext({
18
+ isValidating: false,
19
+ });
20
+ function useFieldContext() {
21
+ return React.useContext(FieldContext);
22
+ }
23
+
24
+ exports.Field = Field;
25
+ exports.FieldContext = FieldContext;
26
+ exports.useFieldContext = useFieldContext;
27
+ //# sourceMappingURL=Field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.js","sources":["../../../../src/components/field/Field.tsx"],"sourcesContent":["import {\n Field as BaseField,\n FieldRootProps as BaseFieldRootProps,\n FieldDescriptionProps,\n FieldErrorProps,\n FieldLabelProps,\n} from \"@base-ui/react/field\";\nimport React from \"react\";\nimport { BasicFieldProps, cn } from \"../../lib/utils\";\n\nexport interface FieldProps extends BaseFieldRootProps, BasicFieldProps {\n labelProps?: FieldLabelProps;\n errorMessageProps?: FieldErrorProps;\n descriptionProps?: FieldDescriptionProps;\n isValidatingMessageProps?: FieldDescriptionProps;\n}\n\nexport function Field({\n label,\n isValidating,\n isValidatingMessage,\n errorMessage,\n className,\n description,\n children,\n labelProps: { className: labelClassName, ...labelProps } = {},\n errorMessageProps: {\n className: errorMessageClassName,\n ...errorMessageProps\n } = {},\n descriptionProps: {\n className: descriptionClassName,\n ...descriptionProps\n } = {},\n isValidatingMessageProps: {\n className: isValidatingMessageClassName,\n ...isValidatingMessageProps\n } = {},\n ...props\n}: FieldProps) {\n const invalid = !!errorMessage;\n\n return (\n <FieldContext.Provider value={{ isValidating: !!isValidating }}>\n <BaseField.Root\n className={cn(\"flex flex-col gap-1\", className)}\n invalid={invalid}\n data-validating={isValidating ? \"\" : undefined}\n {...props}\n >\n {label && (\n <BaseField.Label\n className={cn(\n \"text-foreground text-sm font-semibold\",\n labelClassName,\n )}\n {...labelProps}\n >\n {label}\n </BaseField.Label>\n )}\n {children}\n <BaseField.Error\n className={cn(\"text-error-foreground text-sm\", errorMessageClassName)}\n match={invalid}\n {...errorMessageProps}\n >\n {errorMessage}\n </BaseField.Error>\n {isValidating && isValidatingMessage && !errorMessage && (\n <BaseField.Description\n className={cn(\n \"text-primary-foreground text-sm\",\n isValidatingMessageClassName,\n )}\n {...isValidatingMessageProps}\n >\n {isValidatingMessage}\n </BaseField.Description>\n )}\n {description && (\n <BaseField.Description\n className={cn(\n \"text-muted-foreground text-sm\",\n descriptionClassName,\n )}\n {...descriptionProps}\n >\n {description}\n </BaseField.Description>\n )}\n </BaseField.Root>\n </FieldContext.Provider>\n );\n}\n\nexport const FieldContext = React.createContext({\n isValidating: false,\n});\n\nexport function useFieldContext() {\n return React.useContext(FieldContext);\n}\n"],"names":["BaseField","cn"],"mappings":";;;;;;AAiBM,SAAU,KAAK,CAAC,EACpB,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,QAAQ,EACR,UAAU,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,EAC7D,iBAAiB,EAAE,EACjB,SAAS,EAAE,qBAAqB,EAChC,GAAG,iBAAiB,EACrB,GAAG,EAAE,EACN,gBAAgB,EAAE,EAChB,SAAS,EAAE,oBAAoB,EAC/B,GAAG,gBAAgB,EACpB,GAAG,EAAE,EACN,wBAAwB,EAAE,EACxB,SAAS,EAAE,4BAA4B,EACvC,GAAG,wBAAwB,EAC5B,GAAG,EAAE,EACN,GAAG,KAAK,EACG,EAAA;AACX,IAAA,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY;AAE9B,IAAA,QACE,KAAA,CAAA,aAAA,CAAC,YAAY,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,EAAA;QAC5D,KAAA,CAAA,aAAA,CAACA,WAAS,CAAC,IAAI,EAAA,EACb,SAAS,EAAEC,QAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,EAC/C,OAAO,EAAE,OAAO,EAAA,iBAAA,EACC,YAAY,GAAG,EAAE,GAAG,SAAS,EAAA,GAC1C,KAAK,EAAA;YAER,KAAK,KACJ,KAAA,CAAA,aAAA,CAACD,WAAS,CAAC,KAAK,EAAA,EACd,SAAS,EAAEC,QAAE,CACX,uCAAuC,EACvC,cAAc,CACf,EAAA,GACG,UAAU,EAAA,EAEb,KAAK,CACU,CACnB;YACA,QAAQ;YACT,KAAA,CAAA,aAAA,CAACD,WAAS,CAAC,KAAK,EAAA,EACd,SAAS,EAAEC,QAAE,CAAC,+BAA+B,EAAE,qBAAqB,CAAC,EACrE,KAAK,EAAE,OAAO,KACV,iBAAiB,EAAA,EAEpB,YAAY,CACG;YACjB,YAAY,IAAI,mBAAmB,IAAI,CAAC,YAAY,KACnD,KAAA,CAAA,aAAA,CAACD,WAAS,CAAC,WAAW,EAAA,EACpB,SAAS,EAAEC,QAAE,CACX,iCAAiC,EACjC,4BAA4B,CAC7B,EAAA,GACG,wBAAwB,EAAA,EAE3B,mBAAmB,CACE,CACzB;YACA,WAAW,KACV,KAAA,CAAA,aAAA,CAACD,WAAS,CAAC,WAAW,EAAA,EACpB,SAAS,EAAEC,QAAE,CACX,+BAA+B,EAC/B,oBAAoB,CACrB,EAAA,GACG,gBAAgB,EAAA,EAEnB,WAAW,CACU,CACzB,CACc,CACK;AAE5B;AAEO,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;AAC9C,IAAA,YAAY,EAAE,KAAK;AACpB,CAAA;SAEe,eAAe,GAAA;AAC7B,IAAA,OAAO,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;AACvC;;;;;;"}
@@ -0,0 +1 @@
1
+ export * from "./Field";
@@ -0,0 +1,8 @@
1
+ import { InputProps as BaseInputProps } from "@base-ui/react/input";
2
+ import React from "react";
3
+ import { BasicFieldProps } from "../../lib/utils";
4
+ import { FieldProps } from "../field/Field";
5
+ export interface InputProps extends BaseInputProps, BasicFieldProps {
6
+ fieldProps?: FieldProps;
7
+ }
8
+ export declare function Input({ label, isValidating, isValidatingMessage, errorMessage, className, description, fieldProps, ...props }: InputProps): React.JSX.Element;
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var input = require('@base-ui/react/input');
4
+ var React = require('react');
5
+ var utils = require('../../lib/utils.js');
6
+ var Field = require('../field/Field.js');
7
+
8
+ function Input({ label, isValidating, isValidatingMessage, errorMessage, className, description, fieldProps, ...props }) {
9
+ return (React.createElement(Field.Field, { label: label, isValidating: isValidating, isValidatingMessage: isValidatingMessage, errorMessage: errorMessage, description: description, ...fieldProps },
10
+ React.createElement(input.Input, { className: utils.cn("data-invalid:not-focus:border-error-foreground data-validating:not-data-invalid:animate-validating focus:border-highlight placeholder:text-muted-foreground w-full min-w-40 rounded-lg border p-2 transition-colors outline-none", className), "data-validating": isValidating ? "" : undefined, ...props })));
11
+ }
12
+
13
+ exports.Input = Input;
14
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","sources":["../../../../src/components/input/Input.tsx"],"sourcesContent":["import {\n Input as BaseInput,\n InputProps as BaseInputProps,\n} from \"@base-ui/react/input\";\nimport React from \"react\";\nimport { BasicFieldProps, cn } from \"../../lib/utils\";\nimport { Field, FieldProps } from \"../field/Field\";\n\nexport interface InputProps extends BaseInputProps, BasicFieldProps {\n fieldProps?: FieldProps;\n}\n\nexport function Input({\n label,\n isValidating,\n isValidatingMessage,\n errorMessage,\n className,\n description,\n fieldProps,\n ...props\n}: InputProps) {\n return (\n <Field\n label={label}\n isValidating={isValidating}\n isValidatingMessage={isValidatingMessage}\n errorMessage={errorMessage}\n description={description}\n {...fieldProps}\n >\n <BaseInput\n className={cn(\n \"data-invalid:not-focus:border-error-foreground data-validating:not-data-invalid:animate-validating focus:border-highlight placeholder:text-muted-foreground w-full min-w-40 rounded-lg border p-2 transition-colors outline-none\",\n className,\n )}\n data-validating={isValidating ? \"\" : undefined}\n {...props}\n />\n </Field>\n );\n}\n"],"names":["Field","BaseInput","cn"],"mappings":";;;;;;;AAYM,SAAU,KAAK,CAAC,EACpB,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,GAAG,KAAK,EACG,EAAA;IACX,QACE,KAAA,CAAA,aAAA,CAACA,WAAK,EAAA,EACJ,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EAAA,GACpB,UAAU,EAAA;QAEd,KAAA,CAAA,aAAA,CAACC,WAAS,EAAA,EACR,SAAS,EAAEC,QAAE,CACX,kOAAkO,EAClO,SAAS,CACV,EAAA,iBAAA,EACgB,YAAY,GAAG,EAAE,GAAG,SAAS,EAAA,GAC1C,KAAK,EAAA,CACT,CACI;AAEZ;;;;"}
@@ -0,0 +1 @@
1
+ export * from "./Input";
@@ -0,0 +1,18 @@
1
+ import { RadioIndicatorProps, RadioRootProps } from "@base-ui/react/radio";
2
+ import { RadioGroupProps as BaseRadioGroupProps } from "@base-ui/react/radio-group";
3
+ import * as React from "react";
4
+ import { BasicFieldProps } from "../../lib/utils";
5
+ import { FieldProps } from "../field/Field";
6
+ interface RadioProps extends RadioRootProps {
7
+ label?: React.ReactNode;
8
+ indicatorProps?: RadioIndicatorProps;
9
+ }
10
+ export declare function Radio({ label, indicatorProps: { className: indicatorClassName, ...indicatorProps }, ...props }: RadioProps): React.JSX.Element;
11
+ export declare namespace Radio {
12
+ var Group: typeof RadioGroup;
13
+ }
14
+ interface RadioGroupProps extends BaseRadioGroupProps, BasicFieldProps {
15
+ fieldProps?: FieldProps;
16
+ }
17
+ export declare function RadioGroup({ isValidating, isValidatingMessage, errorMessage, description, fieldProps, label, children, ...props }: RadioGroupProps): React.JSX.Element;
18
+ export {};
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var fieldset = require('@base-ui/react/fieldset');
4
+ var radio = require('@base-ui/react/radio');
5
+ var radioGroup = require('@base-ui/react/radio-group');
6
+ var React = require('react');
7
+ var utils = require('../../lib/utils.js');
8
+ var Field = require('../field/Field.js');
9
+
10
+ function _interopNamespaceDefault(e) {
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
28
+
29
+ function Radio({ label, indicatorProps: { className: indicatorClassName, ...indicatorProps } = {}, ...props }) {
30
+ const id = React__namespace.useId();
31
+ const { isValidating } = Field.useFieldContext();
32
+ return (React__namespace.createElement("label", { className: "flex items-center gap-2", id: id },
33
+ React__namespace.createElement(radio.Radio.Root, { className: utils.cn("data-validating:not-data-invalid:animate-validating focus-visible:outline-highlight data-checked:border-primary-foreground data-invalid:border-error-foreground flex size-5 items-center justify-center rounded-full border focus-visible:outline-2 focus-visible:outline-offset-2"), "aria-labelledby": id, "data-validating": isValidating ? "" : undefined, ...props },
34
+ React__namespace.createElement(radio.Radio.Indicator, { className: utils.cn("before:bg-primary data-invalid:before:bg-error flex before:size-3 before:rounded-full data-unchecked:hidden", indicatorClassName), ...indicatorProps })),
35
+ label));
36
+ }
37
+ function RadioGroup({ isValidating, isValidatingMessage, errorMessage, description, fieldProps, label, children, ...props }) {
38
+ return (React__namespace.createElement(Field.Field, { isValidating: isValidating, isValidatingMessage: isValidatingMessage, errorMessage: errorMessage, description: description, ...fieldProps },
39
+ React__namespace.createElement(fieldset.Fieldset.Root, { render: React__namespace.createElement(radioGroup.RadioGroup, { ...props }), className: "flex flex-col gap-1" },
40
+ React__namespace.createElement(fieldset.Fieldset.Legend, { className: "text-foreground text-sm font-semibold" }, label),
41
+ children)));
42
+ }
43
+ Radio.Group = RadioGroup;
44
+
45
+ exports.Radio = Radio;
46
+ exports.RadioGroup = RadioGroup;
47
+ //# sourceMappingURL=Radio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Radio.js","sources":["../../../../src/components/radio/Radio.tsx"],"sourcesContent":["import { Fieldset } from \"@base-ui/react/fieldset\";\nimport {\n Radio as BaseRadio,\n RadioIndicatorProps,\n RadioRootProps,\n} from \"@base-ui/react/radio\";\nimport {\n RadioGroup as BaseRadioGroup,\n RadioGroupProps as BaseRadioGroupProps,\n} from \"@base-ui/react/radio-group\";\nimport * as React from \"react\";\nimport { BasicFieldProps, cn } from \"../../lib/utils\";\nimport { Field, FieldProps, useFieldContext } from \"../field/Field\";\n\ninterface RadioProps extends RadioRootProps {\n label?: React.ReactNode;\n indicatorProps?: RadioIndicatorProps;\n}\n\nexport function Radio({\n label,\n indicatorProps: { className: indicatorClassName, ...indicatorProps } = {},\n ...props\n}: RadioProps) {\n const id = React.useId();\n const { isValidating } = useFieldContext();\n\n return (\n <label className=\"flex items-center gap-2\" id={id}>\n <BaseRadio.Root\n className={cn(\n \"data-validating:not-data-invalid:animate-validating focus-visible:outline-highlight data-checked:border-primary-foreground data-invalid:border-error-foreground flex size-5 items-center justify-center rounded-full border focus-visible:outline-2 focus-visible:outline-offset-2\",\n )}\n aria-labelledby={id}\n data-validating={isValidating ? \"\" : undefined}\n {...props}\n >\n <BaseRadio.Indicator\n className={cn(\n \"before:bg-primary data-invalid:before:bg-error flex before:size-3 before:rounded-full data-unchecked:hidden\",\n indicatorClassName,\n )}\n {...indicatorProps}\n />\n </BaseRadio.Root>\n {label}\n </label>\n );\n}\n\ninterface RadioGroupProps extends BaseRadioGroupProps, BasicFieldProps {\n fieldProps?: FieldProps;\n}\n\nexport function RadioGroup({\n isValidating,\n isValidatingMessage,\n errorMessage,\n description,\n fieldProps,\n label,\n children,\n ...props\n}: RadioGroupProps) {\n return (\n <Field\n isValidating={isValidating}\n isValidatingMessage={isValidatingMessage}\n errorMessage={errorMessage}\n description={description}\n {...fieldProps}\n >\n <Fieldset.Root\n render={<BaseRadioGroup {...props} />}\n className=\"flex flex-col gap-1\"\n >\n <Fieldset.Legend className=\"text-foreground text-sm font-semibold\">\n {label}\n </Fieldset.Legend>\n {children}\n </Fieldset.Root>\n </Field>\n );\n}\n\nRadio.Group = RadioGroup;\n"],"names":["React","useFieldContext","BaseRadio","cn","Field","Fieldset","BaseRadioGroup"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBM,SAAU,KAAK,CAAC,EACpB,KAAK,EACL,cAAc,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,EACzE,GAAG,KAAK,EACG,EAAA;AACX,IAAA,MAAM,EAAE,GAAGA,gBAAK,CAAC,KAAK,EAAE;AACxB,IAAA,MAAM,EAAE,YAAY,EAAE,GAAGC,qBAAe,EAAE;IAE1C,QACED,0CAAO,SAAS,EAAC,yBAAyB,EAAC,EAAE,EAAE,EAAE,EAAA;QAC/CA,gBAAA,CAAA,aAAA,CAACE,WAAS,CAAC,IAAI,EAAA,EACb,SAAS,EAAEC,QAAE,CACX,oRAAoR,CACrR,EAAA,iBAAA,EACgB,EAAE,EAAA,iBAAA,EACF,YAAY,GAAG,EAAE,GAAG,SAAS,EAAA,GAC1C,KAAK,EAAA;AAET,YAAAH,gBAAA,CAAA,aAAA,CAACE,WAAS,CAAC,SAAS,EAAA,EAClB,SAAS,EAAEC,QAAE,CACX,6GAA6G,EAC7G,kBAAkB,CACnB,EAAA,GACG,cAAc,GAClB,CACa;QAChB,KAAK,CACA;AAEZ;AAMM,SAAU,UAAU,CAAC,EACzB,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACQ,EAAA;IAChB,QACEH,+BAACI,WAAK,EAAA,EACJ,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,KACpB,UAAU,EAAA;AAEd,QAAAJ,gBAAA,CAAA,aAAA,CAACK,iBAAQ,CAAC,IAAI,EAAA,EACZ,MAAM,EAAEL,gBAAA,CAAA,aAAA,CAACM,qBAAc,EAAA,EAAA,GAAK,KAAK,EAAA,CAAI,EACrC,SAAS,EAAC,qBAAqB,EAAA;YAE/BN,gBAAA,CAAA,aAAA,CAACK,iBAAQ,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,uCAAuC,EAAA,EAC/D,KAAK,CACU;YACjB,QAAQ,CACK,CACV;AAEZ;AAEA,KAAK,CAAC,KAAK,GAAG,UAAU;;;;;"}
@@ -0,0 +1 @@
1
+ export * from "./Radio";
@@ -0,0 +1,24 @@
1
+ import { SelectRootProps as BaseSelectProps, SelectIconProps, SelectItemIndicatorProps, SelectItemProps, SelectItemTextProps, SelectListProps, SelectPopupProps, SelectPortalProps, SelectPositionerProps, SelectScrollDownArrowProps, SelectScrollUpArrowProps, SelectTriggerProps, SelectValueProps } from "@base-ui/react/select";
2
+ import React from "react";
3
+ import { BasicFieldProps } from "../../lib/utils";
4
+ import { FieldProps } from "../field/Field";
5
+ export interface SelectProps<T> extends BaseSelectProps<T>, BasicFieldProps {
6
+ className?: string;
7
+ placeholder?: React.ReactNode;
8
+ fieldProps?: FieldProps;
9
+ triggerProps?: SelectTriggerProps;
10
+ valueProps?: SelectValueProps;
11
+ selectIconProps?: SelectIconProps;
12
+ iconProps?: React.ComponentPropsWithoutRef<"svg">;
13
+ portalProps?: SelectPortalProps;
14
+ positionerProps?: SelectPositionerProps;
15
+ popupProps?: SelectPopupProps;
16
+ scrollUpArrowProps?: SelectScrollUpArrowProps;
17
+ listProps?: SelectListProps;
18
+ itemProps?: SelectItemProps;
19
+ itemIndicatorProps?: SelectItemIndicatorProps;
20
+ checkIconProps?: React.ComponentPropsWithoutRef<"svg">;
21
+ itemTextProps?: SelectItemTextProps;
22
+ scrollDownArrowProps?: SelectScrollDownArrowProps;
23
+ }
24
+ export declare function Select<T>({ label, isValidating, isValidatingMessage, errorMessage, className, description, fieldProps, items, placeholder, triggerProps: { className: triggerClassName, ...triggerProps }, valueProps: { className: valueClassName, ...valueProps }, selectIconProps: { className: selectIconClassName, ...selectIconProps }, iconProps: { className: iconClassName, ...iconProps }, portalProps, positionerProps: { className: positionerClassName, ...positionerProps }, popupProps: { className: popupClassName, ...popupProps }, scrollUpArrowProps: { className: scrollUpArrowClassName, ...scrollUpArrowProps }, listProps: { className: listClassName, ...listProps }, itemProps: { className: itemClassName, ...itemProps }, itemIndicatorProps: { className: itemIndicatorClassName, ...itemIndicatorProps }, checkIconProps: { className: checkIconClassName, ...checkIconProps }, itemTextProps: { className: itemTextClassName, ...itemTextProps }, scrollDownArrowProps: { className: scrollDownArrowClassName, ...scrollDownArrowProps }, ...props }: SelectProps<T>): React.JSX.Element;
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var select = require('@base-ui/react/select');
4
+ var lucideReact = require('lucide-react');
5
+ var React = require('react');
6
+ var utils = require('../../lib/utils.js');
7
+ var Field = require('../field/Field.js');
8
+
9
+ function Select({ label, isValidating, isValidatingMessage, errorMessage, className, description, fieldProps, items, placeholder, triggerProps: { className: triggerClassName, ...triggerProps } = {}, valueProps: { className: valueClassName, ...valueProps } = {}, selectIconProps: { className: selectIconClassName, ...selectIconProps } = {}, iconProps: { className: iconClassName, ...iconProps } = {}, portalProps, positionerProps: { className: positionerClassName, ...positionerProps } = {}, popupProps: { className: popupClassName, ...popupProps } = {}, scrollUpArrowProps: { className: scrollUpArrowClassName, ...scrollUpArrowProps } = {}, listProps: { className: listClassName, ...listProps } = {}, itemProps: { className: itemClassName, ...itemProps } = {}, itemIndicatorProps: { className: itemIndicatorClassName, ...itemIndicatorProps } = {}, checkIconProps: { className: checkIconClassName, ...checkIconProps } = {}, itemTextProps: { className: itemTextClassName, ...itemTextProps } = {}, scrollDownArrowProps: { className: scrollDownArrowClassName, ...scrollDownArrowProps } = {}, ...props }) {
10
+ return (React.createElement(Field.Field, { label: label, isValidating: isValidating, isValidatingMessage: isValidatingMessage, errorMessage: errorMessage, description: description, ...fieldProps },
11
+ React.createElement(select.Select.Root, { items: items, ...props },
12
+ React.createElement(select.Select.Trigger, { className: utils.cn("data-invalid:not-focus:border-error-foreground data-validating:not-data-invalid:animate-validating bg-background hover:bg-card data-popup-open:bg-card focus-visible:border-highlight flex min-w-40 items-center justify-between gap-3 rounded-lg border p-2 text-base transition-colors outline-none select-none", className, triggerClassName), "data-validating": isValidating ? "" : undefined, ...triggerProps },
13
+ React.createElement(select.Select.Value, { className: utils.cn("data-placeholder:opacity-60", valueClassName), placeholder: placeholder, ...valueProps }),
14
+ React.createElement(select.Select.Icon, { className: utils.cn("flex", selectIconClassName), ...selectIconProps },
15
+ React.createElement(lucideReact.ChevronsUpDown, { className: utils.cn("size-4", iconClassName), ...iconProps }))),
16
+ React.createElement(select.Select.Portal, { ...portalProps },
17
+ React.createElement(select.Select.Positioner, { className: utils.cn("z-10 outline-none select-none", positionerClassName), sideOffset: 8, ...positionerProps },
18
+ React.createElement(select.Select.Popup, { className: utils.cn("group bg-background outline-border min-w-(--anchor-width) origin-(--transform-origin) rounded-lg bg-clip-padding shadow-lg outline transition-[transform,scale,opacity] data-ending-style:scale-90 data-ending-style:opacity-0 data-starting-style:scale-90 data-starting-style:opacity-0 data-[side=none]:min-w-[calc(var(--anchor-width)+1.25rem)] data-[side=none]:data-ending-style:transition-none data-[side=none]:data-starting-style:scale-100 data-[side=none]:data-starting-style:opacity-100 data-[side=none]:data-starting-style:transition-none", popupClassName), ...popupProps },
19
+ React.createElement(select.Select.ScrollUpArrow, { className: utils.cn("bg-background top-0 z-1 flex h-4 w-full cursor-default items-center justify-center rounded-lg text-center text-xs before:absolute before:left-0 before:h-full before:w-full before:content-[''] data-[side=none]:before:-top-full", scrollUpArrowClassName), ...scrollUpArrowProps }),
20
+ React.createElement(select.Select.List, { className: utils.cn("relative max-h-(--available-height) scroll-py-6 overflow-y-auto py-1", listClassName), ...listProps }, Array.isArray(items) &&
21
+ items.map(({ label, value }) => (React.createElement(select.Select.Item, { key: label, value: value, className: utils.cn("data-highlighted:before:bg-primary data-highlighted:text-on-primary grid cursor-default grid-cols-[0.75rem_1fr] items-center gap-2 py-2 pr-4 pl-2.5 text-sm leading-4 outline-none select-none group-data-[side=none]:pr-12 group-data-[side=none]:text-base group-data-[side=none]:leading-4 data-highlighted:relative data-highlighted:z-0 data-highlighted:before:absolute data-highlighted:before:inset-x-1 data-highlighted:before:inset-y-0 data-highlighted:before:z-[-1] data-highlighted:before:rounded-sm pointer-coarse:py-2.5 pointer-coarse:text-[0.925rem]", itemClassName), ...itemProps },
22
+ React.createElement(select.Select.ItemIndicator, { className: utils.cn("col-start-1", itemIndicatorClassName), ...itemIndicatorProps },
23
+ React.createElement(lucideReact.Check, { className: utils.cn("size-3", checkIconClassName), ...checkIconProps })),
24
+ React.createElement(select.Select.ItemText, { className: utils.cn("col-start-2", itemTextClassName), ...itemTextProps }, label))))),
25
+ React.createElement(select.Select.ScrollDownArrow, { className: utils.cn("bg-background bottom-0 z-1 flex h-4 w-full cursor-default items-center justify-center rounded-lg text-center text-xs before:absolute before:left-0 before:h-full before:w-full before:content-[''] data-[side=none]:before:-bottom-full", scrollDownArrowClassName), ...scrollDownArrowProps })))))));
26
+ }
27
+
28
+ exports.Select = Select;
29
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.js","sources":["../../../../src/components/select/Select.tsx"],"sourcesContent":["import {\n Select as BaseSelect,\n SelectRootProps as BaseSelectProps,\n SelectIconProps,\n SelectItemIndicatorProps,\n SelectItemProps,\n SelectItemTextProps,\n SelectListProps,\n SelectPopupProps,\n SelectPortalProps,\n SelectPositionerProps,\n SelectScrollDownArrowProps,\n SelectScrollUpArrowProps,\n SelectTriggerProps,\n SelectValueProps,\n} from \"@base-ui/react/select\";\nimport { Check, ChevronsUpDown } from \"lucide-react\";\nimport React from \"react\";\nimport { BasicFieldProps, cn } from \"../../lib/utils\";\nimport { Field, FieldProps } from \"../field/Field\";\n\nexport interface SelectProps<T> extends BaseSelectProps<T>, BasicFieldProps {\n className?: string;\n placeholder?: React.ReactNode;\n fieldProps?: FieldProps;\n triggerProps?: SelectTriggerProps;\n valueProps?: SelectValueProps;\n selectIconProps?: SelectIconProps;\n iconProps?: React.ComponentPropsWithoutRef<\"svg\">;\n portalProps?: SelectPortalProps;\n positionerProps?: SelectPositionerProps;\n popupProps?: SelectPopupProps;\n scrollUpArrowProps?: SelectScrollUpArrowProps;\n listProps?: SelectListProps;\n itemProps?: SelectItemProps;\n itemIndicatorProps?: SelectItemIndicatorProps;\n checkIconProps?: React.ComponentPropsWithoutRef<\"svg\">;\n itemTextProps?: SelectItemTextProps;\n scrollDownArrowProps?: SelectScrollDownArrowProps;\n}\n\nexport function Select<T>({\n label,\n isValidating,\n isValidatingMessage,\n errorMessage,\n className,\n description,\n fieldProps,\n items,\n placeholder,\n triggerProps: { className: triggerClassName, ...triggerProps } = {},\n valueProps: { className: valueClassName, ...valueProps } = {},\n selectIconProps: { className: selectIconClassName, ...selectIconProps } = {},\n iconProps: { className: iconClassName, ...iconProps } = {},\n portalProps,\n positionerProps: { className: positionerClassName, ...positionerProps } = {},\n popupProps: { className: popupClassName, ...popupProps } = {},\n scrollUpArrowProps: {\n className: scrollUpArrowClassName,\n ...scrollUpArrowProps\n } = {},\n listProps: { className: listClassName, ...listProps } = {},\n itemProps: { className: itemClassName, ...itemProps } = {},\n itemIndicatorProps: {\n className: itemIndicatorClassName,\n ...itemIndicatorProps\n } = {},\n checkIconProps: { className: checkIconClassName, ...checkIconProps } = {},\n itemTextProps: { className: itemTextClassName, ...itemTextProps } = {},\n scrollDownArrowProps: {\n className: scrollDownArrowClassName,\n ...scrollDownArrowProps\n } = {},\n ...props\n}: SelectProps<T>) {\n return (\n <Field\n label={label}\n isValidating={isValidating}\n isValidatingMessage={isValidatingMessage}\n errorMessage={errorMessage}\n description={description}\n {...fieldProps}\n >\n <BaseSelect.Root items={items} {...props}>\n <BaseSelect.Trigger\n className={cn(\n \"data-invalid:not-focus:border-error-foreground data-validating:not-data-invalid:animate-validating bg-background hover:bg-card data-popup-open:bg-card focus-visible:border-highlight flex min-w-40 items-center justify-between gap-3 rounded-lg border p-2 text-base transition-colors outline-none select-none\",\n className,\n triggerClassName,\n )}\n data-validating={isValidating ? \"\" : undefined}\n {...triggerProps}\n >\n <BaseSelect.Value\n className={cn(\"data-placeholder:opacity-60\", valueClassName)}\n placeholder={placeholder}\n {...valueProps}\n />\n <BaseSelect.Icon\n className={cn(\"flex\", selectIconClassName)}\n {...selectIconProps}\n >\n <ChevronsUpDown\n className={cn(\"size-4\", iconClassName)}\n {...iconProps}\n />\n </BaseSelect.Icon>\n </BaseSelect.Trigger>\n <BaseSelect.Portal {...portalProps}>\n <BaseSelect.Positioner\n className={cn(\"z-10 outline-none select-none\", positionerClassName)}\n sideOffset={8}\n {...positionerProps}\n >\n <BaseSelect.Popup\n className={cn(\n \"group bg-background outline-border min-w-(--anchor-width) origin-(--transform-origin) rounded-lg bg-clip-padding shadow-lg outline transition-[transform,scale,opacity] data-ending-style:scale-90 data-ending-style:opacity-0 data-starting-style:scale-90 data-starting-style:opacity-0 data-[side=none]:min-w-[calc(var(--anchor-width)+1.25rem)] data-[side=none]:data-ending-style:transition-none data-[side=none]:data-starting-style:scale-100 data-[side=none]:data-starting-style:opacity-100 data-[side=none]:data-starting-style:transition-none\",\n popupClassName,\n )}\n {...popupProps}\n >\n <BaseSelect.ScrollUpArrow\n className={cn(\n \"bg-background top-0 z-1 flex h-4 w-full cursor-default items-center justify-center rounded-lg text-center text-xs before:absolute before:left-0 before:h-full before:w-full before:content-[''] data-[side=none]:before:-top-full\",\n scrollUpArrowClassName,\n )}\n {...scrollUpArrowProps}\n />\n <BaseSelect.List\n className={cn(\n \"relative max-h-(--available-height) scroll-py-6 overflow-y-auto py-1\",\n listClassName,\n )}\n {...listProps}\n >\n {Array.isArray(items) &&\n items.map(({ label, value }) => (\n <BaseSelect.Item\n key={label}\n value={value}\n className={cn(\n \"data-highlighted:before:bg-primary data-highlighted:text-on-primary grid cursor-default grid-cols-[0.75rem_1fr] items-center gap-2 py-2 pr-4 pl-2.5 text-sm leading-4 outline-none select-none group-data-[side=none]:pr-12 group-data-[side=none]:text-base group-data-[side=none]:leading-4 data-highlighted:relative data-highlighted:z-0 data-highlighted:before:absolute data-highlighted:before:inset-x-1 data-highlighted:before:inset-y-0 data-highlighted:before:z-[-1] data-highlighted:before:rounded-sm pointer-coarse:py-2.5 pointer-coarse:text-[0.925rem]\",\n itemClassName,\n )}\n {...itemProps}\n >\n <BaseSelect.ItemIndicator\n className={cn(\"col-start-1\", itemIndicatorClassName)}\n {...itemIndicatorProps}\n >\n <Check\n className={cn(\"size-3\", checkIconClassName)}\n {...checkIconProps}\n />\n </BaseSelect.ItemIndicator>\n <BaseSelect.ItemText\n className={cn(\"col-start-2\", itemTextClassName)}\n {...itemTextProps}\n >\n {label}\n </BaseSelect.ItemText>\n </BaseSelect.Item>\n ))}\n </BaseSelect.List>\n <BaseSelect.ScrollDownArrow\n className={cn(\n \"bg-background bottom-0 z-1 flex h-4 w-full cursor-default items-center justify-center rounded-lg text-center text-xs before:absolute before:left-0 before:h-full before:w-full before:content-[''] data-[side=none]:before:-bottom-full\",\n scrollDownArrowClassName,\n )}\n {...scrollDownArrowProps}\n />\n </BaseSelect.Popup>\n </BaseSelect.Positioner>\n </BaseSelect.Portal>\n </BaseSelect.Root>\n </Field>\n );\n}\n"],"names":["Field","BaseSelect","cn","ChevronsUpDown","Check"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./Select";
@@ -0,0 +1 @@
1
+ @import url("https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap");@import "tailwindcss";@source "./components/**/*.{ts,tsx,js,jsx}";:root{--background:#0a0a0a;--foreground:#ededed;--border:#333;--card:#141414;--primary:#3b2d7c;--on-primary:#fff;--primary-foreground:#946fd1;--secondary:#e6e6e6;--on-secondary:#000;--secondary-foreground:#fff;--muted:#5e5e5e;--on-muted:#d1d1d1;--muted-foreground:#919191;--error:#972626;--on-error:#fff;--error-foreground:#d94141;--success:#2d7e45;--on-success:#fff;--success-foreground:#47c26c;--link:#3b82f6}@theme inline{--color-background:var(--background);--color-foreground:var(--foreground);--color-border:var(--border);--color-card:var(--card);--color-primary:var(--primary);--color-on-primary:var(--on-primary);--color-primary-foreground:var(--primary-foreground);--color-secondary:var(--secondary);--color-on-secondary:var(--on-secondary);--color-secondary-foreground:var(--secondary-foreground);--color-muted:var(--muted);--color-on-muted:var(--on-muted);--color-muted-foreground:var(--muted-foreground);--color-error:var(--error);--color-on-error:var(--on-error);--color-error-foreground:var(--error-foreground);--color-success:var(--success);--color-on-success:var(--on-success);--color-success-foreground:var(--success-foreground);--color-link:var(--link);--animate-validating:validating 1.5s ease-in-out infinite;@keyframes validating{0%,to{border-color:var(--primary)}50%{border-color:var(--primary-foreground)}}}body{background-color:var(--background);color:var(--foreground);font-family:Noto Sans,sans-serif;font-optical-sizing:auto;font-style:normal;font-variation-settings:"wdth" 100}*{border-color:var(--border)}
@@ -0,0 +1,8 @@
1
+ export * from "./components/button";
2
+ export * from "./components/checkbox";
3
+ export * from "./components/checkbox-group";
4
+ export * from "./components/field";
5
+ export * from "./components/input";
6
+ export * from "./components/radio";
7
+ export * from "./components/select";
8
+ export * from "./lib/utils";
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var Button = require('./components/button/Button.js');
4
+ var Checkbox = require('./components/checkbox/Checkbox.js');
5
+ var CheckboxGroup = require('./components/checkbox-group/CheckboxGroup.js');
6
+ var Field = require('./components/field/Field.js');
7
+ var Input = require('./components/input/Input.js');
8
+ var Radio = require('./components/radio/Radio.js');
9
+ var Select = require('./components/select/Select.js');
10
+ var utils = require('./lib/utils.js');
11
+
12
+
13
+
14
+ exports.Button = Button.Button;
15
+ exports.Checkbox = Checkbox.Checkbox;
16
+ exports.CheckboxGroup = CheckboxGroup.CheckboxGroup;
17
+ exports.useCheckboxGroupContext = CheckboxGroup.useCheckboxGroupContext;
18
+ exports.Field = Field.Field;
19
+ exports.FieldContext = Field.FieldContext;
20
+ exports.useFieldContext = Field.useFieldContext;
21
+ exports.Input = Input.Input;
22
+ exports.Radio = Radio.Radio;
23
+ exports.RadioGroup = Radio.RadioGroup;
24
+ exports.Select = Select.Select;
25
+ exports.cn = utils.cn;
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,7 @@
1
+ export interface FieldProps {
2
+ label?: string;
3
+ errorMessage?: React.ReactNode;
4
+ isValidating?: boolean;
5
+ isValidatingMessage?: React.ReactNode;
6
+ description?: React.ReactNode;
7
+ }
@@ -0,0 +1,10 @@
1
+ import { type ClassValue } from "clsx";
2
+ import React from "react";
3
+ export declare function cn(...inputs: ClassValue[]): string;
4
+ export interface BasicFieldProps {
5
+ label?: React.ReactNode;
6
+ errorMessage?: React.ReactNode;
7
+ isValidating?: boolean;
8
+ isValidatingMessage?: React.ReactNode;
9
+ description?: React.ReactNode;
10
+ }
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var clsx = require('clsx');
4
+ var tailwindMerge = require('tailwind-merge');
5
+
6
+ function cn(...inputs) {
7
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
8
+ }
9
+
10
+ exports.cn = cn;
11
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\nexport interface BasicFieldProps {\n label?: React.ReactNode;\n errorMessage?: React.ReactNode;\n isValidating?: boolean;\n isValidatingMessage?: React.ReactNode;\n description?: React.ReactNode;\n}\n"],"names":["twMerge","clsx"],"mappings":";;;;;AAIM,SAAU,EAAE,CAAC,GAAG,MAAoB,EAAA;AACxC,IAAA,OAAOA,qBAAO,CAACC,SAAI,CAAC,MAAM,CAAC,CAAC;AAC9B;;;;"}
@@ -0,0 +1 @@
1
+ @import "tailwindcss";@import url("https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap");@source "../components/**/*.{ts,tsx,js,jsx}";:root{--background:#0a0a0a;--foreground:#ededed;--border:#333;--card:#141414;--primary:#3b2d7c;--on-primary:#fff;--primary-foreground:#946fd1;--secondary:#e6e6e6;--on-secondary:#000;--secondary-foreground:#fff;--muted:#5e5e5e;--on-muted:#d1d1d1;--muted-foreground:#919191;--error:#972626;--on-error:#fff;--error-foreground:#d94141;--success:#2d7e45;--on-success:#fff;--success-foreground:#47c26c;--link:#3b82f6}@theme inline{--color-background:var(--background);--color-foreground:var(--foreground);--color-border:var(--border);--color-card:var(--card);--color-primary:var(--primary);--color-on-primary:var(--on-primary);--color-primary-foreground:var(--primary-foreground);--color-secondary:var(--secondary);--color-on-secondary:var(--on-secondary);--color-secondary-foreground:var(--secondary-foreground);--color-muted:var(--muted);--color-on-muted:var(--on-muted);--color-muted-foreground:var(--muted-foreground);--color-error:var(--error);--color-on-error:var(--on-error);--color-error-foreground:var(--error-foreground);--color-success:var(--success);--color-on-success:var(--on-success);--color-success-foreground:var(--success-foreground);--color-link:var(--link);--animate-validating:validating 1.5s ease-in-out infinite;@keyframes validating{0%,to{border-color:var(--primary)}50%{border-color:var(--primary-foreground)}}}@layer components{.fransek-ui{color:var(--foreground);font-family:Noto Sans,sans-serif;font-optical-sizing:auto;font-style:normal;font-variation-settings:"wdth" 100;&,*{border-color:var(--border)}}}
@@ -0,0 +1,25 @@
1
+ import { ButtonProps as BaseButtonProps } from "@base-ui/react/button";
2
+ import React from "react";
3
+ export interface ButtonProps extends BaseButtonProps {
4
+ variant?: ButtonVariant;
5
+ size?: ButtonSize;
6
+ }
7
+ export declare function Button({ variant, size, children, className, ...props }: ButtonProps): React.JSX.Element;
8
+ declare const variantStyles: {
9
+ primary: string;
10
+ secondary: string;
11
+ muted: string;
12
+ error: string;
13
+ success: string;
14
+ outline: string;
15
+ ghost: string;
16
+ link: string;
17
+ };
18
+ declare const sizeStyles: {
19
+ sm: string;
20
+ md: string;
21
+ lg: string;
22
+ };
23
+ export type ButtonVariant = keyof typeof variantStyles;
24
+ export type ButtonSize = keyof typeof sizeStyles;
25
+ export {};