@zedtech/zedkit-ui 0.1.0 → 0.1.1

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 (133) hide show
  1. package/dist/alert.d.ts +9 -0
  2. package/dist/alert.d.ts.map +1 -0
  3. package/dist/alert.js +26 -0
  4. package/dist/alert.js.map +1 -0
  5. package/dist/app-shell.d.ts +9 -0
  6. package/dist/app-shell.d.ts.map +1 -0
  7. package/dist/app-shell.js +6 -0
  8. package/dist/app-shell.js.map +1 -0
  9. package/dist/badge.d.ts +10 -0
  10. package/dist/badge.d.ts.map +1 -0
  11. package/dist/badge.js +19 -0
  12. package/dist/badge.js.map +1 -0
  13. package/dist/button.d.ts +12 -0
  14. package/dist/button.d.ts.map +1 -0
  15. package/dist/button.js +31 -0
  16. package/dist/button.js.map +1 -0
  17. package/dist/card.d.ts +9 -0
  18. package/dist/card.d.ts.map +1 -0
  19. package/dist/card.js +17 -0
  20. package/dist/card.js.map +1 -0
  21. package/dist/checkbox.d.ts +5 -0
  22. package/dist/checkbox.d.ts.map +1 -0
  23. package/dist/checkbox.js +10 -0
  24. package/dist/checkbox.js.map +1 -0
  25. package/dist/confirm-dialog.d.ts +17 -0
  26. package/dist/confirm-dialog.d.ts.map +1 -0
  27. package/dist/confirm-dialog.js +18 -0
  28. package/dist/confirm-dialog.js.map +1 -0
  29. package/dist/data-table.d.ts +33 -0
  30. package/dist/data-table.d.ts.map +1 -0
  31. package/dist/data-table.js +40 -0
  32. package/dist/data-table.js.map +1 -0
  33. package/dist/detail-panel.d.ts +11 -0
  34. package/dist/detail-panel.d.ts.map +1 -0
  35. package/dist/detail-panel.js +6 -0
  36. package/dist/detail-panel.js.map +1 -0
  37. package/dist/dialog.d.ts +14 -0
  38. package/dist/dialog.d.ts.map +1 -0
  39. package/dist/dialog.js +26 -0
  40. package/dist/dialog.js.map +1 -0
  41. package/dist/field.d.ts +26 -0
  42. package/dist/field.d.ts.map +1 -0
  43. package/dist/field.js +74 -0
  44. package/dist/field.js.map +1 -0
  45. package/dist/form-submit.d.ts +16 -0
  46. package/dist/form-submit.d.ts.map +1 -0
  47. package/dist/form-submit.js +15 -0
  48. package/dist/form-submit.js.map +1 -0
  49. package/dist/form.d.ts +26 -0
  50. package/dist/form.d.ts.map +1 -0
  51. package/dist/form.js +65 -0
  52. package/dist/form.js.map +1 -0
  53. package/dist/index.d.ts +33 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +33 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/input.d.ts +4 -0
  58. package/dist/input.d.ts.map +1 -0
  59. package/dist/input.js +9 -0
  60. package/dist/input.js.map +1 -0
  61. package/dist/label.d.ts +6 -0
  62. package/dist/label.d.ts.map +1 -0
  63. package/dist/label.js +11 -0
  64. package/dist/label.js.map +1 -0
  65. package/dist/layout.d.ts +22 -0
  66. package/dist/layout.d.ts.map +1 -0
  67. package/dist/layout.js +36 -0
  68. package/dist/layout.js.map +1 -0
  69. package/dist/live-pulse.d.ts +7 -0
  70. package/dist/live-pulse.d.ts.map +1 -0
  71. package/dist/live-pulse.js +6 -0
  72. package/dist/live-pulse.js.map +1 -0
  73. package/dist/option-cards.d.ts +15 -0
  74. package/dist/option-cards.d.ts.map +1 -0
  75. package/dist/option-cards.js +9 -0
  76. package/dist/option-cards.js.map +1 -0
  77. package/dist/page-header.d.ts +9 -0
  78. package/dist/page-header.d.ts.map +1 -0
  79. package/dist/page-header.js +6 -0
  80. package/dist/page-header.js.map +1 -0
  81. package/dist/secret-field.d.ts +22 -0
  82. package/dist/secret-field.d.ts.map +1 -0
  83. package/dist/secret-field.js +26 -0
  84. package/dist/secret-field.js.map +1 -0
  85. package/dist/select.d.ts +14 -0
  86. package/dist/select.d.ts.map +1 -0
  87. package/dist/select.js +30 -0
  88. package/dist/select.js.map +1 -0
  89. package/dist/separator.d.ts +5 -0
  90. package/dist/separator.d.ts.map +1 -0
  91. package/dist/separator.js +9 -0
  92. package/dist/separator.js.map +1 -0
  93. package/dist/skeleton.d.ts +3 -0
  94. package/dist/skeleton.d.ts.map +1 -0
  95. package/dist/skeleton.js +7 -0
  96. package/dist/skeleton.js.map +1 -0
  97. package/dist/sonner.d.ts +8 -0
  98. package/dist/sonner.d.ts.map +1 -0
  99. package/dist/sonner.js +19 -0
  100. package/dist/sonner.js.map +1 -0
  101. package/dist/switch.d.ts +5 -0
  102. package/dist/switch.d.ts.map +1 -0
  103. package/dist/switch.js +9 -0
  104. package/dist/switch.js.map +1 -0
  105. package/dist/table.d.ts +11 -0
  106. package/dist/table.d.ts.map +1 -0
  107. package/dist/table.js +28 -0
  108. package/dist/table.js.map +1 -0
  109. package/dist/tabs.d.ts +8 -0
  110. package/dist/tabs.d.ts.map +1 -0
  111. package/dist/tabs.js +14 -0
  112. package/dist/tabs.js.map +1 -0
  113. package/dist/textarea.d.ts +4 -0
  114. package/dist/textarea.d.ts.map +1 -0
  115. package/dist/textarea.js +9 -0
  116. package/dist/textarea.js.map +1 -0
  117. package/dist/typography.d.ts +22 -0
  118. package/dist/typography.d.ts.map +1 -0
  119. package/dist/typography.js +39 -0
  120. package/dist/typography.js.map +1 -0
  121. package/dist/use-validated-form.d.ts +10 -0
  122. package/dist/use-validated-form.d.ts.map +1 -0
  123. package/dist/use-validated-form.js +20 -0
  124. package/dist/use-validated-form.js.map +1 -0
  125. package/dist/utils.d.ts +8 -0
  126. package/dist/utils.d.ts.map +1 -0
  127. package/dist/utils.js +11 -0
  128. package/dist/utils.js.map +1 -0
  129. package/dist/wizard-steps.d.ts +8 -0
  130. package/dist/wizard-steps.d.ts.map +1 -0
  131. package/dist/wizard-steps.js +7 -0
  132. package/dist/wizard-steps.js.map +1 -0
  133. package/package.json +2 -2
@@ -0,0 +1,16 @@
1
+ import type * as React from "react";
2
+ import { type ButtonProps } from "./button.js";
3
+ export type FormSubmitProps = Omit<ButtonProps, "type"> & {
4
+ /**
5
+ * Label shown while the form submits. Defaults to `children`.
6
+ * Both come from the caller (message catalog), never hard-coded.
7
+ */
8
+ pendingLabel?: React.ReactNode;
9
+ };
10
+ /**
11
+ * Submit button wired to the enclosing form: disabled while the
12
+ * submission is in flight, with an optional pending label.
13
+ * Must render inside `<Form>` (uses the form context).
14
+ */
15
+ export declare function FormSubmit({ pendingLabel, children, disabled, ...props }: FormSubmitProps): React.JSX.Element;
16
+ //# sourceMappingURL=form-submit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-submit.d.ts","sourceRoot":"","sources":["../src/form-submit.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG;IACxD;;;OAGG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,qBAQzF"}
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useFormContext } from "react-hook-form";
4
+ import { Button } from "./button.js";
5
+ /**
6
+ * Submit button wired to the enclosing form: disabled while the
7
+ * submission is in flight, with an optional pending label.
8
+ * Must render inside `<Form>` (uses the form context).
9
+ */
10
+ export function FormSubmit({ pendingLabel, children, disabled, ...props }) {
11
+ const { formState } = useFormContext();
12
+ const pending = formState.isSubmitting;
13
+ return (_jsx(Button, { type: "submit", disabled: disabled === true || pending, ...props, children: pending && pendingLabel !== undefined ? pendingLabel : children }));
14
+ }
15
+ //# sourceMappingURL=form-submit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-submit.js","sourceRoot":"","sources":["../src/form-submit.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC;AAUvD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAmB;IACxF,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC;IACvC,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,IAAI,OAAO,KAAM,KAAK,YACpE,OAAO,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,GACzD,CACV,CAAC;AACJ,CAAC"}
package/dist/form.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ import * as React from "react";
2
+ import * as LabelPrimitive from "@radix-ui/react-label";
3
+ import { type ControllerProps, type FieldPath, type FieldValues } from "react-hook-form";
4
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>({ children, watch, getValues, getErrors, getFieldState, setError, clearErrors, setValue, setValues, trigger, formState, resetField, reset, resetDefaultValues, handleSubmit, unregister, control, register, setFocus, subscribe, }: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
5
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => React.JSX.Element;
6
+ declare const useFormField: () => {
7
+ invalid: boolean;
8
+ isDirty: boolean;
9
+ isTouched: boolean;
10
+ isValidating: boolean;
11
+ error?: import("react-hook-form").FieldError;
12
+ id: string;
13
+ name: string;
14
+ formItemId: string;
15
+ formDescriptionId: string;
16
+ formMessageId: string;
17
+ };
18
+ declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
19
+ declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
20
+ declare const FormControl: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLElement> & {
21
+ children?: React.ReactNode | undefined;
22
+ } & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
23
+ declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
24
+ declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
25
+ export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };
26
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAKzB,QAAA,MAAM,IAAI,yaAAe,CAAC;AAW1B,QAAA,MAAM,SAAS,GACb,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,cAEC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,sBAMtC,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;CAyBjB,CAAC;AAQF,QAAA,MAAM,QAAQ,6GAUb,CAAC;AAGF,QAAA,MAAM,SAAS,yJAcb,CAAC;AAGH,QAAA,MAAM,WAAW;;gFAef,CAAC;AAGH,QAAA,MAAM,eAAe,yHAQpB,CAAC;AAGF,QAAA,MAAM,WAAW,yHAoBhB,CAAC;AAGF,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC"}
package/dist/form.js ADDED
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Slot } from "@radix-ui/react-slot";
5
+ import { Controller, FormProvider, useFormContext, } from "react-hook-form";
6
+ import { cn } from "./utils.js";
7
+ import { Label } from "./label.js";
8
+ const Form = FormProvider;
9
+ const FormFieldContext = React.createContext(null);
10
+ const FormField = ({ ...props }) => {
11
+ return (_jsx(FormFieldContext.Provider, { value: { name: props.name }, children: _jsx(Controller, { ...props }) }));
12
+ };
13
+ const useFormField = () => {
14
+ const fieldContext = React.useContext(FormFieldContext);
15
+ const itemContext = React.useContext(FormItemContext);
16
+ const { getFieldState, formState } = useFormContext();
17
+ if (!fieldContext) {
18
+ throw new Error("useFormField should be used within <FormField>");
19
+ }
20
+ if (!itemContext) {
21
+ throw new Error("useFormField should be used within <FormItem>");
22
+ }
23
+ const fieldState = getFieldState(fieldContext.name, formState);
24
+ const { id } = itemContext;
25
+ return {
26
+ id,
27
+ name: fieldContext.name,
28
+ formItemId: `${id}-form-item`,
29
+ formDescriptionId: `${id}-form-item-description`,
30
+ formMessageId: `${id}-form-item-message`,
31
+ ...fieldState,
32
+ };
33
+ };
34
+ const FormItemContext = React.createContext(null);
35
+ const FormItem = React.forwardRef(({ className, ...props }, ref) => {
36
+ const id = React.useId();
37
+ return (_jsx(FormItemContext.Provider, { value: { id }, children: _jsx("div", { ref: ref, className: cn("space-y-2", className), ...props }) }));
38
+ });
39
+ FormItem.displayName = "FormItem";
40
+ const FormLabel = React.forwardRef(({ className, ...props }, ref) => {
41
+ const { error, formItemId } = useFormField();
42
+ return (_jsx(Label, { ref: ref, className: cn(error && "text-destructive", className), htmlFor: formItemId, ...props }));
43
+ });
44
+ FormLabel.displayName = "FormLabel";
45
+ const FormControl = React.forwardRef(({ ...props }, ref) => {
46
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
47
+ return (_jsx(Slot, { ref: ref, id: formItemId, "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`, "aria-invalid": !!error, ...props }));
48
+ });
49
+ FormControl.displayName = "FormControl";
50
+ const FormDescription = React.forwardRef(({ className, ...props }, ref) => {
51
+ const { formDescriptionId } = useFormField();
52
+ return (_jsx("p", { ref: ref, id: formDescriptionId, className: cn("text-[0.8rem] text-muted-foreground", className), ...props }));
53
+ });
54
+ FormDescription.displayName = "FormDescription";
55
+ const FormMessage = React.forwardRef(({ className, children, ...props }, ref) => {
56
+ const { error, formMessageId } = useFormField();
57
+ const body = error ? String(error?.message ?? "") : children;
58
+ if (!body) {
59
+ return null;
60
+ }
61
+ return (_jsx("p", { ref: ref, id: formMessageId, className: cn("text-[0.8rem] font-medium text-destructive", className), ...props, children: body }));
62
+ });
63
+ FormMessage.displayName = "FormMessage";
64
+ export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };
65
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../src/form.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export { Alert, AlertDescription, AlertTitle } from "./alert.js";
2
+ export { AppShell, type AppShellProps } from "./app-shell.js";
3
+ export { Badge, badgeVariants } from "./badge.js";
4
+ export { Button, buttonVariants, type ButtonProps } from "./button.js";
5
+ export { ConfirmDialog, type ConfirmDialogProps } from "./confirm-dialog.js";
6
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./card.js";
7
+ export { Checkbox } from "./checkbox.js";
8
+ export { DataTable, createDataTableColumns, type DataTableColumn, type DataTableProps, } from "./data-table.js";
9
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, } from "./dialog.js";
10
+ export { DetailPanel, type DetailItem, type DetailPanelProps } from "./detail-panel.js";
11
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, } from "./field.js";
12
+ export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField, } from "./form.js";
13
+ export { FormSubmit, type FormSubmitProps } from "./form-submit.js";
14
+ export { useValidatedForm } from "./use-validated-form.js";
15
+ export { Input } from "./input.js";
16
+ export { Label } from "./label.js";
17
+ export { Section, Stack, stackVariants, type SectionProps, type StackProps } from "./layout.js";
18
+ export { LivePulse, type LivePulseProps } from "./live-pulse.js";
19
+ export { OptionCards, type OptionCard, type OptionCardsProps } from "./option-cards.js";
20
+ export { PageHeader, type PageHeaderProps } from "./page-header.js";
21
+ export { SecretField, type SecretFieldProps } from "./secret-field.js";
22
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, } from "./select.js";
23
+ export { Separator } from "./separator.js";
24
+ export { Skeleton } from "./skeleton.js";
25
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, } from "./table.js";
26
+ export { WizardSteps, type WizardStepsProps } from "./wizard-steps.js";
27
+ export { Switch } from "./switch.js";
28
+ export { Tabs, TabsContent, TabsList, TabsTrigger } from "./tabs.js";
29
+ export { Textarea } from "./textarea.js";
30
+ export { Toaster } from "./sonner.js";
31
+ export { Heading, headingVariants, Text, textVariants, type HeadingProps, type TextProps, } from "./typography.js";
32
+ export { cn } from "./utils.js";
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,33 @@
1
+ export { Alert, AlertDescription, AlertTitle } from "./alert.js";
2
+ export { AppShell } from "./app-shell.js";
3
+ export { Badge, badgeVariants } from "./badge.js";
4
+ export { Button, buttonVariants } from "./button.js";
5
+ export { ConfirmDialog } from "./confirm-dialog.js";
6
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./card.js";
7
+ export { Checkbox } from "./checkbox.js";
8
+ export { DataTable, createDataTableColumns, } from "./data-table.js";
9
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, } from "./dialog.js";
10
+ export { DetailPanel } from "./detail-panel.js";
11
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, } from "./field.js";
12
+ export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField, } from "./form.js";
13
+ export { FormSubmit } from "./form-submit.js";
14
+ export { useValidatedForm } from "./use-validated-form.js";
15
+ export { Input } from "./input.js";
16
+ export { Label } from "./label.js";
17
+ export { Section, Stack, stackVariants } from "./layout.js";
18
+ export { LivePulse } from "./live-pulse.js";
19
+ export { OptionCards } from "./option-cards.js";
20
+ export { PageHeader } from "./page-header.js";
21
+ export { SecretField } from "./secret-field.js";
22
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, } from "./select.js";
23
+ export { Separator } from "./separator.js";
24
+ export { Skeleton } from "./skeleton.js";
25
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, } from "./table.js";
26
+ export { WizardSteps } from "./wizard-steps.js";
27
+ export { Switch } from "./switch.js";
28
+ export { Tabs, TabsContent, TabsList, TabsTrigger } from "./tabs.js";
29
+ export { Textarea } from "./textarea.js";
30
+ export { Toaster } from "./sonner.js";
31
+ export { Heading, headingVariants, Text, textVariants, } from "./typography.js";
32
+ export { cn } from "./utils.js";
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAsB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,SAAS,EACT,sBAAsB,GAGvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAA0C,MAAM,mBAAmB,CAAC;AACxF,OAAO,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,IAAI,EACJ,WAAW,EACX,eAAe,EACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAwB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAsC,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAA0C,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,UAAU,EAAwB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,GACT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,OAAO,EACP,eAAe,EACf,IAAI,EACJ,YAAY,GAGb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ declare const Input: React.ForwardRefExoticComponent<React.InputHTMLAttributes<HTMLInputElement> & React.RefAttributes<HTMLInputElement>>;
3
+ export { Input };
4
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,KAAK,sHAcV,CAAC;AAGF,OAAO,EAAE,KAAK,EAAE,CAAC"}
package/dist/input.js ADDED
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "./utils.js";
4
+ const Input = React.forwardRef(({ className, type, ...props }, ref) => {
5
+ return (_jsx("input", { type: type, className: cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50", className), ref: ref, ...props }));
6
+ });
7
+ Input.displayName = "Input";
8
+ export { Input };
9
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACrC,OAAO,CACL,gBACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,4VAA4V,EAC5V,SAAS,CACV,EACD,GAAG,EAAE,GAAG,KACJ,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AACF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAE5B,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import * as LabelPrimitive from "@radix-ui/react-label";
3
+ import { type VariantProps } from "class-variance-authority";
4
+ declare const Label: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: import("class-variance-authority/types").ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>>;
5
+ export { Label };
6
+ //# sourceMappingURL=label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../src/label.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOlE,QAAA,MAAM,KAAK,4PAKT,CAAC;AAGH,OAAO,EAAE,KAAK,EAAE,CAAC"}
package/dist/label.js ADDED
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import * as LabelPrimitive from "@radix-ui/react-label";
5
+ import { cva } from "class-variance-authority";
6
+ import { cn } from "./utils.js";
7
+ const labelVariants = cva("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
8
+ const Label = React.forwardRef(({ className, ...props }, ref) => (_jsx(LabelPrimitive.Root, { ref: ref, className: cn(labelVariants(), className), ...props })));
9
+ Label.displayName = LabelPrimitive.Root.displayName;
10
+ export { Label };
11
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../src/label.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,aAAa,GAAG,GAAG,CACvB,4FAA4F,CAC7F,CAAC;AAEF,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAG5B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,cAAc,CAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACxF,CAAC,CAAC;AACH,KAAK,CAAC,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const stackVariants: (props?: ({
4
+ direction?: "horizontal" | "vertical" | null | undefined;
5
+ gap?: 1 | 2 | 3 | 4 | 6 | 8 | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export type StackProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof stackVariants> & {
8
+ direction?: "vertical" | "horizontal";
9
+ gap?: 1 | 2 | 3 | 4 | 6 | 8;
10
+ };
11
+ declare function Stack({ direction, gap, className, ...props }: StackProps): React.JSX.Element;
12
+ export type SectionProps = React.HTMLAttributes<HTMLElement> & {
13
+ /** Section title, rendered as a level-2 heading. */
14
+ title?: React.ReactNode;
15
+ /** Muted description under the title. */
16
+ description?: React.ReactNode;
17
+ /** Actions row, right-aligned next to the title. */
18
+ actions?: React.ReactNode;
19
+ };
20
+ declare function Section({ title, description, actions, children, className, ...props }: SectionProps): React.JSX.Element;
21
+ export { Stack, stackVariants, Section };
22
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAUlE,QAAA,MAAM,aAAa;;;8EAmBjB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAC3D,YAAY,CAAC,OAAO,aAAa,CAAC,GAAG;IACnC,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACtC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC7B,CAAC;AAEJ,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,qBAEjE;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG;IAC7D,oDAAoD;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,yCAAyC;IACzC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,oDAAoD;IACpD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,iBAAS,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,qBAe5F;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC"}
package/dist/layout.js ADDED
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import { cn } from "./utils.js";
4
+ import { Heading } from "./typography.js";
5
+ import { Text } from "./typography.js";
6
+ // No shadcn source exists for layout stacks/sections, so these two
7
+ // thin wrappers carry the documented spacing patterns. They exist so
8
+ // consumers can replace raw <section>/<div> stacks entirely.
9
+ const stackVariants = cva("flex", {
10
+ variants: {
11
+ direction: {
12
+ vertical: "flex-col",
13
+ horizontal: "flex-row items-center",
14
+ },
15
+ gap: {
16
+ 1: "gap-1",
17
+ 2: "gap-2",
18
+ 3: "gap-3",
19
+ 4: "gap-4",
20
+ 6: "gap-6",
21
+ 8: "gap-8",
22
+ },
23
+ },
24
+ defaultVariants: {
25
+ direction: "vertical",
26
+ gap: 4,
27
+ },
28
+ });
29
+ function Stack({ direction, gap, className, ...props }) {
30
+ return _jsx("div", { className: cn(stackVariants({ direction, gap }), className), ...props });
31
+ }
32
+ function Section({ title, description, actions, children, className, ...props }) {
33
+ return (_jsxs("section", { className: cn("space-y-4", className), ...props, children: [(title || actions) && (_jsxs("div", { className: "flex items-start justify-between gap-4", children: [_jsxs("div", { children: [title && _jsx(Heading, { level: 2, children: title }), description && _jsx(Text, { variant: "muted", children: description })] }), actions] })), children] }));
34
+ }
35
+ export { Stack, stackVariants, Section };
36
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,mEAAmE;AACnE,qEAAqE;AACrE,6DAA6D;AAE7D,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE;IAChC,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,uBAAuB;SACpC;QACD,GAAG,EAAE;YACH,CAAC,EAAE,OAAO;YACV,CAAC,EAAE,OAAO;YACV,CAAC,EAAE,OAAO;YACV,CAAC,EAAE,OAAO;YACV,CAAC,EAAE,OAAO;YACV,CAAC,EAAE,OAAO;SACX;KACF;IACD,eAAe,EAAE;QACf,SAAS,EAAE,UAAU;QACrB,GAAG,EAAE,CAAC;KACP;CACF,CAAC,CAAC;AAQH,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,EAAc;IAChE,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AACzF,CAAC;AAWD,SAAS,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgB;IAC3F,OAAO,CACL,mBAAS,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,KAAM,KAAK,aACtD,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CACrB,eAAK,SAAS,EAAC,wCAAwC,aACrD,0BACG,KAAK,IAAI,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,YAAG,KAAK,GAAW,EAC7C,WAAW,IAAI,KAAC,IAAI,IAAC,OAAO,EAAC,OAAO,YAAE,WAAW,GAAQ,IACtD,EACL,OAAO,IACJ,CACP,EACA,QAAQ,IACD,CACX,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface LivePulseProps {
2
+ active?: boolean;
3
+ label?: string;
4
+ className?: string;
5
+ }
6
+ export declare function LivePulse({ active, label, className }: LivePulseProps): import("react").JSX.Element;
7
+ //# sourceMappingURL=live-pulse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-pulse.d.ts","sourceRoot":"","sources":["../src/live-pulse.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EAAE,MAAa,EAAE,KAAc,EAAE,SAAS,EAAE,EAAE,cAAc,+BAkBrF"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "./utils.js";
3
+ export function LivePulse({ active = true, label = "Live", className }) {
4
+ return (_jsxs("span", { role: "status", "aria-label": active ? label : "Idle", className: cn("inline-flex items-center gap-1.5 text-xs text-muted-foreground", className), children: [_jsxs("span", { className: "relative flex size-2", children: [active ? (_jsx("span", { className: "absolute inline-flex h-full w-full animate-ping rounded-full bg-success opacity-60" })) : null, _jsx("span", { className: cn("relative inline-flex size-2 rounded-full", active ? "bg-success" : "bg-muted-foreground/40") })] }), active ? label : "Idle"] }));
5
+ }
6
+ //# sourceMappingURL=live-pulse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-pulse.js","sourceRoot":"","sources":["../src/live-pulse.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAQhC,MAAM,UAAU,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,EAAkB;IACpF,OAAO,CACL,gBACE,IAAI,EAAC,QAAQ,gBACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EACnC,SAAS,EAAE,EAAE,CAAC,gEAAgE,EAAE,SAAS,CAAC,aAE1F,gBAAM,SAAS,EAAC,sBAAsB,aACnC,MAAM,CAAC,CAAC,CAAC,CACR,eAAM,SAAS,EAAC,oFAAoF,GAAG,CACxG,CAAC,CAAC,CAAC,IAAI,EACR,eACE,SAAS,EAAE,EAAE,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,GAC3G,IACG,EACN,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IACnB,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type * as React from "react";
2
+ export interface OptionCard {
3
+ id: string;
4
+ title: React.ReactNode;
5
+ description?: React.ReactNode;
6
+ }
7
+ export interface OptionCardsProps {
8
+ options: OptionCard[];
9
+ selected: string[];
10
+ onChange: (ids: string[]) => void;
11
+ label?: string;
12
+ className?: string;
13
+ }
14
+ export declare function OptionCards({ options, selected, onChange, label, className }: OptionCardsProps): React.JSX.Element;
15
+ //# sourceMappingURL=option-cards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-cards.d.ts","sourceRoot":"","sources":["../src/option-cards.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAiB,EAAE,SAAS,EAAE,EAAE,gBAAgB,qBA4B1G"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "./utils.js";
3
+ export function OptionCards({ options, selected, onChange, label = "Options", className }) {
4
+ function toggle(id) {
5
+ onChange(selected.includes(id) ? selected.filter((entry) => entry !== id) : [...selected, id]);
6
+ }
7
+ return (_jsx("div", { role: "group", "aria-label": label, className: cn("grid gap-3 sm:grid-cols-2", className), children: options.map((option) => (_jsxs("label", { className: "flex cursor-pointer gap-3 rounded-lg border p-4 transition-colors hover:border-muted-foreground/40 has-[:checked]:border-primary has-[:checked]:bg-primary/5 has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring", children: [_jsx("input", { type: "checkbox", className: "sr-only", checked: selected.includes(option.id), onChange: () => toggle(option.id) }), _jsxs("span", { children: [_jsx("span", { className: "block font-medium", children: option.title }), option.description ? (_jsx("span", { className: "block text-sm text-muted-foreground", children: option.description })) : null] })] }, option.id))) }));
8
+ }
9
+ //# sourceMappingURL=option-cards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-cards.js","sourceRoot":"","sources":["../src/option-cards.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAgBhC,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,EAAE,SAAS,EAAoB;IACzG,SAAS,MAAM,CAAC,EAAU;QACxB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,OAAO,CACL,cAAK,IAAI,EAAC,OAAO,gBAAa,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,YACvF,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,iBAEE,SAAS,EAAC,yNAAyN,aAEnO,gBACE,IAAI,EAAC,UAAU,EACf,SAAS,EAAC,SAAS,EACnB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EACrC,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GACjC,EACF,2BACE,eAAM,SAAS,EAAC,mBAAmB,YAAE,MAAM,CAAC,KAAK,GAAQ,EACxD,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CACpB,eAAM,SAAS,EAAC,qCAAqC,YAAE,MAAM,CAAC,WAAW,GAAQ,CAClF,CAAC,CAAC,CAAC,IAAI,IACH,KAdF,MAAM,CAAC,EAAE,CAeR,CACT,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type * as React from "react";
2
+ export interface PageHeaderProps {
3
+ title: React.ReactNode;
4
+ description?: React.ReactNode;
5
+ actions?: React.ReactNode;
6
+ className?: string;
7
+ }
8
+ export declare function PageHeader({ title, description, actions, className }: PageHeaderProps): React.JSX.Element;
9
+ //# sourceMappingURL=page-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../src/page-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,eAAe,qBAUrF"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "./utils.js";
3
+ export function PageHeader({ title, description, actions, className }) {
4
+ return (_jsxs("div", { className: cn("mb-6 flex flex-wrap items-start justify-between gap-4", className), children: [_jsxs("div", { className: "space-y-1", children: [_jsx("h1", { className: "text-2xl font-semibold tracking-tight", children: title }), description ? _jsx("p", { className: "text-sm text-muted-foreground", children: description }) : null] }), actions ? _jsx("div", { className: "flex items-center gap-2", children: actions }) : null] }));
5
+ }
6
+ //# sourceMappingURL=page-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-header.js","sourceRoot":"","sources":["../src/page-header.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAShC,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAmB;IACpF,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,uDAAuD,EAAE,SAAS,CAAC,aACpF,eAAK,SAAS,EAAC,WAAW,aACxB,aAAI,SAAS,EAAC,uCAAuC,YAAE,KAAK,GAAM,EACjE,WAAW,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,+BAA+B,YAAE,WAAW,GAAK,CAAC,CAAC,CAAC,IAAI,IAChF,EACL,OAAO,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,yBAAyB,YAAE,OAAO,GAAO,CAAC,CAAC,CAAC,IAAI,IACtE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import * as React from "react";
2
+ export interface SecretFieldProps {
3
+ /** Element id, so a Label can point at it. */
4
+ id?: string;
5
+ /** The secret text (shown once by the caller, never logged). */
6
+ value: string;
7
+ /** Accessible label for the copy button. */
8
+ copyLabel?: string;
9
+ /**
10
+ * Accessible name for the value input. Required unless an external
11
+ * Label points at `id` — every input must have a label.
12
+ */
13
+ "aria-label"?: string;
14
+ }
15
+ /**
16
+ * Shown-once secret with a copy button: read-only value, clipboard
17
+ * on click, check feedback for 2s. Falls back to no-op when the
18
+ * clipboard API is unavailable (insecure contexts).
19
+ */
20
+ declare function SecretField({ id, value, copyLabel, "aria-label": ariaLabel }: SecretFieldProps): React.JSX.Element;
21
+ export { SecretField };
22
+ //# sourceMappingURL=secret-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-field.d.ts","sourceRoot":"","sources":["../src/secret-field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,iBAAS,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAA+B,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,gBAAgB,qBAqB7G;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Check, Copy } from "lucide-react";
5
+ import { Button } from "./button.js";
6
+ import { Input } from "./input.js";
7
+ /**
8
+ * Shown-once secret with a copy button: read-only value, clipboard
9
+ * on click, check feedback for 2s. Falls back to no-op when the
10
+ * clipboard API is unavailable (insecure contexts).
11
+ */
12
+ function SecretField({ id, value, copyLabel = "Copy to clipboard", "aria-label": ariaLabel }) {
13
+ const [copied, setCopied] = React.useState(false);
14
+ const copy = () => {
15
+ const clipboard = navigator.clipboard;
16
+ if (!clipboard)
17
+ return;
18
+ clipboard.writeText(value).then(() => {
19
+ setCopied(true);
20
+ setTimeout(() => setCopied(false), 2000);
21
+ }, () => { });
22
+ };
23
+ return (_jsxs("div", { className: "flex w-full items-center gap-2", children: [_jsx(Input, { id: id, readOnly: true, value: value, className: "font-mono", "aria-label": ariaLabel }), _jsx(Button, { type: "button", variant: "outline", size: "icon", "aria-label": copyLabel, onClick: copy, children: copied ? _jsx(Check, { className: "h-4 w-4" }) : _jsx(Copy, { className: "h-4 w-4" }) })] }));
24
+ }
25
+ export { SecretField };
26
+ //# sourceMappingURL=secret-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-field.js","sourceRoot":"","sources":["../src/secret-field.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAgBnC;;;;GAIG;AACH,SAAS,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,mBAAmB,EAAE,YAAY,EAAE,SAAS,EAAoB;IAC5G,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAC7B,GAAG,EAAE;YACH,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC,EACD,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,CACL,eAAK,SAAS,EAAC,gCAAgC,aAC7C,KAAC,KAAK,IAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,QAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,WAAW,gBAAa,SAAS,GAAI,EACrF,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,gBAAa,SAAS,EAAE,OAAO,EAAE,IAAI,YACrF,MAAM,CAAC,CAAC,CAAC,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,GAAG,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,GAC/D,IACL,CACP,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import * as SelectPrimitive from "@radix-ui/react-select";
3
+ declare const Select: React.FC<SelectPrimitive.SelectProps>;
4
+ declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
5
+ declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
6
+ declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
7
+ declare const SelectScrollUpButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const SelectScrollDownButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const SelectContent: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
+ declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
+ declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
+ declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, };
14
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../src/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAK1D,QAAA,MAAM,MAAM,uCAAuB,CAAC;AAEpC,QAAA,MAAM,WAAW,yGAAwB,CAAC;AAE1C,QAAA,MAAM,WAAW,0GAAwB,CAAC;AAE1C,QAAA,MAAM,aAAa,oKAiBjB,CAAC;AAGH,QAAA,MAAM,oBAAoB,qKAWxB,CAAC;AAGH,QAAA,MAAM,sBAAsB,uKAW1B,CAAC;AAGH,QAAA,MAAM,aAAa,8JA+BjB,CAAC;AAGH,QAAA,MAAM,WAAW,4JAKf,CAAC;AAGH,QAAA,MAAM,UAAU,2JAmBd,CAAC;AAGH,QAAA,MAAM,eAAe,gKAKnB,CAAC;AAGH,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,sBAAsB,GACvB,CAAC"}
package/dist/select.js ADDED
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import * as SelectPrimitive from "@radix-ui/react-select";
5
+ import { Check, ChevronDown, ChevronUp } from "lucide-react";
6
+ import { cn } from "./utils.js";
7
+ const Select = SelectPrimitive.Root;
8
+ const SelectGroup = SelectPrimitive.Group;
9
+ const SelectValue = SelectPrimitive.Value;
10
+ const SelectTrigger = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(SelectPrimitive.Trigger, { ref: ref, className: cn("flex h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm ring-offset-background focus:ring-1 focus:ring-ring focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground [&>span]:line-clamp-1", className), ...props, children: [children, _jsx(SelectPrimitive.Icon, { asChild: true, children: _jsx(ChevronDown, { className: "h-4 w-4 opacity-50" }) })] })));
11
+ SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
12
+ const SelectScrollUpButton = React.forwardRef(({ className, ...props }, ref) => (_jsx(SelectPrimitive.ScrollUpButton, { ref: ref, className: cn("flex cursor-default items-center justify-center py-1", className), ...props, children: _jsx(ChevronUp, { className: "h-4 w-4" }) })));
13
+ SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
14
+ const SelectScrollDownButton = React.forwardRef(({ className, ...props }, ref) => (_jsx(SelectPrimitive.ScrollDownButton, { ref: ref, className: cn("flex cursor-default items-center justify-center py-1", className), ...props, children: _jsx(ChevronDown, { className: "h-4 w-4" }) })));
15
+ SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
16
+ const SelectContent = React.forwardRef(({ className, children, position = "popper", ...props }, ref) => (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { ref: ref, className: cn(
17
+ // No animate/fade/zoom/slide utilities: the kit ships without
18
+ // the animation plugin (same as dialog), where they would be
19
+ // dead classes. Kept: positioning, overflow, theme, popper offsets.
20
+ "relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] origin-[--radix-select-content-transform-origin] overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md", position === "popper" &&
21
+ "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className), position: position, ...props, children: [_jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.Viewport, { className: cn("p-1", position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"), children: children }), _jsx(SelectScrollDownButton, {})] }) })));
22
+ SelectContent.displayName = SelectPrimitive.Content.displayName;
23
+ const SelectLabel = React.forwardRef(({ className, ...props }, ref) => (_jsx(SelectPrimitive.Label, { ref: ref, className: cn("px-2 py-1.5 text-sm font-semibold", className), ...props })));
24
+ SelectLabel.displayName = SelectPrimitive.Label.displayName;
25
+ const SelectItem = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(SelectPrimitive.Item, { ref: ref, className: cn("relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className), ...props, children: [_jsx("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: _jsx(SelectPrimitive.ItemIndicator, { children: _jsx(Check, { className: "h-4 w-4" }) }) }), _jsx(SelectPrimitive.ItemText, { children: children })] })));
26
+ SelectItem.displayName = SelectPrimitive.Item.displayName;
27
+ const SelectSeparator = React.forwardRef(({ className, ...props }, ref) => (_jsx(SelectPrimitive.Separator, { ref: ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props })));
28
+ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
29
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, };
30
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../src/select.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
3
+ declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ export { Separator };
5
+ //# sourceMappingURL=separator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../src/separator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAGhE,QAAA,MAAM,SAAS,6JAoBd,CAAC;AAGF,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
5
+ import { cn } from "./utils.js";
6
+ const Separator = React.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => (_jsx(SeparatorPrimitive.Root, { ref: ref, decorative: decorative, orientation: orientation, className: cn("shrink-0 bg-border", orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", className), ...props })));
7
+ Separator.displayName = SeparatorPrimitive.Root.displayName;
8
+ export { Separator };
9
+ //# sourceMappingURL=separator.js.map