@lctafrica/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 (70) hide show
  1. package/dist/components/ui/Label/Label.d.ts +4 -0
  2. package/dist/components/ui/ModalFooter.d.ts +7 -0
  3. package/dist/components/ui/autosuggest-input/AutoSuggestInput.d.ts +10 -0
  4. package/dist/components/ui/autosuggest-input/AutoSuggestInput.stories.d.ts +25 -0
  5. package/dist/components/ui/badge/Badge.d.ts +19 -0
  6. package/dist/components/ui/badge/Badge.stories.d.ts +10 -0
  7. package/dist/components/ui/badge/Badge.test.d.ts +1 -0
  8. package/dist/components/ui/button/Button.d.ts +11 -0
  9. package/dist/components/ui/button/Button.stories.d.ts +18 -0
  10. package/dist/components/ui/button/Button.test.d.ts +1 -0
  11. package/dist/components/ui/button-group/ButtonGroup.d.ts +24 -0
  12. package/dist/components/ui/button-group/ButtonGroup.stories.d.ts +10 -0
  13. package/dist/components/ui/button-group/ButtonGroup.test.d.ts +1 -0
  14. package/dist/components/ui/calendar.d.ts +10 -0
  15. package/dist/components/ui/checkbox/Checkbox.d.ts +15 -0
  16. package/dist/components/ui/checkbox/Checkbox.stories.d.ts +333 -0
  17. package/dist/components/ui/checkbox/Checkbox.test.d.ts +1 -0
  18. package/dist/components/ui/confirm-modal/ConfirmModal.d.ts +4 -0
  19. package/dist/components/ui/confirm-modal/ConfirmModal.stories.d.ts +25 -0
  20. package/dist/components/ui/data-state-renderer/DataStateRendere.stories.d.ts +102 -0
  21. package/dist/components/ui/data-state-renderer/DataStateRenderer.d.ts +19 -0
  22. package/dist/components/ui/date-picker/DatePicker.d.ts +7 -0
  23. package/dist/components/ui/date-picker/DatePicker.stories.d.ts +30 -0
  24. package/dist/components/ui/dialog.d.ts +17 -0
  25. package/dist/components/ui/field/Field.d.ts +24 -0
  26. package/dist/components/ui/field/Field.stories.d.ts +10 -0
  27. package/dist/components/ui/field/Filed.test.d.ts +1 -0
  28. package/dist/components/ui/input/Input.d.ts +6 -0
  29. package/dist/components/ui/input/Input.stories.d.ts +13 -0
  30. package/dist/components/ui/input/Input.test.d.ts +1 -0
  31. package/dist/components/ui/input-group.d.ts +16 -0
  32. package/dist/components/ui/loading-state/LoadingIndicator.d.ts +6 -0
  33. package/dist/components/ui/loading-state/LoadingIndicator.stories.d.ts +6 -0
  34. package/dist/components/ui/loading-state/loading-animation/LoadingAnimation.d.ts +16 -0
  35. package/dist/components/ui/main-wrapper/MainWrapper.d.ts +2 -0
  36. package/dist/components/ui/main-wrapper/MainWrapper.stories.d.ts +19 -0
  37. package/dist/components/ui/modal/Modal.d.ts +11 -0
  38. package/dist/components/ui/modal/Modal.stories.d.ts +29 -0
  39. package/dist/components/ui/popover.d.ts +10 -0
  40. package/dist/components/ui/prompt-modal/PromptModal.d.ts +8 -0
  41. package/dist/components/ui/prompt-modal/PromptModal.stories.d.ts +29 -0
  42. package/dist/components/ui/radio-group/RadioGroup.d.ts +7 -0
  43. package/dist/components/ui/radio-group/RadioGroup.stories.d.ts +13 -0
  44. package/dist/components/ui/radio-group/RadioGroup.test.d.ts +1 -0
  45. package/dist/components/ui/search-input/SearchInput.d.ts +9 -0
  46. package/dist/components/ui/search-input/SearchInput.stories.d.ts +6 -0
  47. package/dist/components/ui/searchable-select/SearchableSelect.d.ts +16 -0
  48. package/dist/components/ui/searchable-select/SearchableSelect.stories.d.ts +25 -0
  49. package/dist/components/ui/select/Select.d.ts +15 -0
  50. package/dist/components/ui/select/Select.stories.d.ts +6 -0
  51. package/dist/components/ui/select/select-components.d.ts +17 -0
  52. package/dist/components/ui/separator/separator.d.ts +4 -0
  53. package/dist/components/ui/state-indicator/StateIndicator.d.ts +22 -0
  54. package/dist/components/ui/state-indicator/StateIndicator.stories.d.ts +33 -0
  55. package/dist/components/ui/success-modal/SuccessAnimation.d.ts +1 -0
  56. package/dist/components/ui/success-modal/SuccessModal.d.ts +12 -0
  57. package/dist/components/ui/success-modal/SuccessModal.stories.d.ts +37 -0
  58. package/dist/components/ui/success-modal/SuccessTickIcon.d.ts +6 -0
  59. package/dist/components/ui/switch/Switch.d.ts +6 -0
  60. package/dist/components/ui/switch/Switch.stories.d.ts +37 -0
  61. package/dist/components/ui/text/Text.d.ts +11 -0
  62. package/dist/components/ui/text/Text.stories.d.ts +9 -0
  63. package/dist/components/ui/text/Text.test.d.ts +1 -0
  64. package/dist/components/ui/textarea/Textarea.d.ts +3 -0
  65. package/dist/components/ui/textarea/Textarea.stories.d.ts +29 -0
  66. package/dist/index.d.ts +16 -0
  67. package/dist/index.js +15125 -0
  68. package/dist/lct-logo.svg +3 -0
  69. package/dist/lib/utils.d.ts +2 -0
  70. package/package.json +2 -1
@@ -0,0 +1,102 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { default as DataStateRenderer } from './DataStateRenderer';
3
+ /**
4
+ * DataStateRenderer is a utility component that conditionally renders UI
5
+ * based on common data-fetching states:
6
+ *
7
+ * - Loading → displays a loading indicator
8
+ * - Error → displays an error state
9
+ * - Empty → displays an empty state
10
+ * - Success → renders children
11
+ *
12
+ * This helps standardize how async states are handled across the application.
13
+ *
14
+ * ---
15
+ *
16
+ * State Priority
17
+ *
18
+ * When multiple states are true, the following priority is applied:
19
+ *
20
+ * 1. `isLoading`
21
+ * 2. `hasError`
22
+ * 3. `isEmpty`
23
+ * 4. `children` (default/content)
24
+ *
25
+ * Example:
26
+ * If `isLoading` and `hasError` are both true → loading state is shown.
27
+ *
28
+ * ---
29
+ *
30
+ * Customization
31
+ *
32
+ * Each state can be customized via props:
33
+ *
34
+ * - `loadingState` → controls loading container styling
35
+ * - `errorState` → controls error title, description, and styling
36
+ * - `emptyState` → controls empty state title, description, and styling
37
+ *
38
+ * ---
39
+ *
40
+ * Usage
41
+ *
42
+ * ```tsx
43
+ * <DataStateRenderer
44
+ * isLoading={isLoading}
45
+ * hasError={error}
46
+ * isEmpty={!data.length}
47
+ * errorState={{
48
+ * title: "Failed to load data",
49
+ * description: "Please try again later",
50
+ * }}
51
+ * >
52
+ * <DataList data={data} />
53
+ * </DataStateRenderer>
54
+ * ```
55
+ *
56
+ * ---
57
+ *
58
+ * Notes
59
+ *
60
+ * - Designed to reduce repetitive conditional rendering in components
61
+ * - Encourages consistent UX for async states
62
+ * - Works well with data-fetching libraries (e.g. React Query, SWR)
63
+ */
64
+ declare const meta: Meta<typeof DataStateRenderer>;
65
+ export default meta;
66
+ type Story = StoryObj<typeof DataStateRenderer>;
67
+ /**
68
+ * Default (data available)
69
+ */
70
+ export declare const Default: Story;
71
+ /**
72
+ * Loading state
73
+ */
74
+ export declare const Loading: Story;
75
+ /**
76
+ * Error state
77
+ */
78
+ export declare const Error: Story;
79
+ /**
80
+ * Empty state
81
+ */
82
+ export declare const Empty: Story;
83
+ /**
84
+ * Priority: Loading overrides everything
85
+ */
86
+ export declare const LoadingTakesPriority: Story;
87
+ /**
88
+ * Error overrides empty
89
+ */
90
+ export declare const ErrorOverridesEmpty: Story;
91
+ /**
92
+ * Custom empty state with action
93
+ */
94
+ export declare const EmptyWithAction: Story;
95
+ /**
96
+ * Custom error styling
97
+ */
98
+ export declare const CustomErrorStyling: Story;
99
+ /**
100
+ * With real content
101
+ */
102
+ export declare const WithContent: Story;
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react';
2
+ import { ActionButton } from '../state-indicator/StateIndicator';
3
+ type StateProps = {
4
+ className?: string;
5
+ title?: string;
6
+ description?: string;
7
+ actionButton?: ActionButton;
8
+ };
9
+ type DataStateRendererProps = {
10
+ children?: ReactNode;
11
+ isLoading?: boolean;
12
+ isEmpty?: boolean;
13
+ hasError?: boolean;
14
+ loadingState?: Omit<StateProps, "title" | "description" | "actionButton">;
15
+ emptyState?: StateProps;
16
+ errorState?: StateProps;
17
+ };
18
+ export default function DataStateRenderer({ isLoading, isEmpty, children, emptyState, errorState, hasError, loadingState, }: DataStateRendererProps): import("react/jsx-runtime").JSX.Element;
19
+ export {};
@@ -0,0 +1,7 @@
1
+ type DatePickerProps = {
2
+ value?: Date | undefined;
3
+ onChange?(date: Date | undefined): void;
4
+ placeholder?: string;
5
+ };
6
+ export declare function DatePicker({ value, onChange, placeholder, }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,30 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { DatePicker } from './DatePicker';
3
+ declare const meta: Meta<typeof DatePicker>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof DatePicker>;
6
+ /**
7
+ * Empty state (placeholder visible)
8
+ */
9
+ export declare const Default: Story;
10
+ /**
11
+ * Pre-selected date (tests formatting + value state styling)
12
+ */
13
+ export declare const WithValue: Story;
14
+ /**
15
+ * External reset control
16
+ */
17
+ export declare const WithExternalReset: Story;
18
+ /**
19
+ * Disabled state (ensures popover + input are not interactive)
20
+ */
21
+ export declare const Disabled: Story;
22
+ /**
23
+ * Accessibility / keyboard focus test
24
+ * (useful for Tab navigation + focus ring checks)
25
+ */
26
+ export declare const FocusTest: Story;
27
+ /**
28
+ * Edge case: long formatted content / layout stress test
29
+ */
30
+ export declare const LongDateFormat: Story;
@@ -0,0 +1,17 @@
1
+ import { Dialog as DialogPrimitive } from 'radix-ui';
2
+ import * as React from "react";
3
+ declare function Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
+ declare function DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
6
+ declare function DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>): import("react/jsx-runtime").JSX.Element;
7
+ declare function DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>): import("react/jsx-runtime").JSX.Element;
8
+ declare function DialogContent({ className, children, showCloseButton, ...props }: React.ComponentProps<typeof DialogPrimitive.Content> & {
9
+ showCloseButton?: boolean;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
12
+ declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
13
+ showCloseButton?: boolean;
14
+ }): import("react/jsx-runtime").JSX.Element;
15
+ declare function DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>): import("react/jsx-runtime").JSX.Element;
16
+ declare function DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>): import("react/jsx-runtime").JSX.Element;
17
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
@@ -0,0 +1,24 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { Label } from '../Label/Label';
3
+ declare function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">): import("react/jsx-runtime").JSX.Element;
4
+ declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<"legend"> & {
5
+ variant?: "legend" | "label";
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ declare function FieldGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
8
+ declare const fieldVariants: (props?: ({
9
+ orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
10
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
11
+ declare function Field({ className, orientation, ...props }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>): import("react/jsx-runtime").JSX.Element;
12
+ declare function FieldContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
13
+ declare function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>): import("react/jsx-runtime").JSX.Element;
14
+ declare function FieldTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
15
+ declare function FieldDescription({ className, ...props }: React.ComponentProps<"p">): import("react/jsx-runtime").JSX.Element;
16
+ declare function FieldSeparator({ children, className, ...props }: React.ComponentProps<"div"> & {
17
+ children?: React.ReactNode;
18
+ }): import("react/jsx-runtime").JSX.Element;
19
+ declare function FieldError({ className, children, errors, ...props }: React.ComponentProps<"div"> & {
20
+ errors?: Array<{
21
+ message?: string;
22
+ } | undefined>;
23
+ }): import("react/jsx-runtime").JSX.Element | null;
24
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, };
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const Default: Story;
6
+ export declare const Horizontal: Story;
7
+ export declare const WithError: Story;
8
+ export declare const MultipleErrors: Story;
9
+ export declare const WithSeparator: Story;
10
+ export declare const CompleteFormExample: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { ComponentProps } from 'react';
3
+ export declare const inputVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
4
+ type InputProps = ComponentProps<"input"> & VariantProps<typeof inputVariants>;
5
+ export declare function Input({ className, type, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,13 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { Input } from '../input/Input';
3
+ declare const meta: Meta<typeof Input>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Input>;
6
+ export declare const Default: Story;
7
+ export declare const WithValue: Story;
8
+ export declare const Disabled: Story;
9
+ export declare const Error: Story;
10
+ export declare const Password: Story;
11
+ export declare const Email: Story;
12
+ export declare const Number: Story;
13
+ export declare const CustomWidth: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { Button } from './button/Button';
3
+ import * as React from "react";
4
+ declare function InputGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
5
+ declare const inputGroupAddonVariants: (props?: ({
6
+ align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
7
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
+ declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>): import("react/jsx-runtime").JSX.Element;
9
+ declare const inputGroupButtonVariants: (props?: ({
10
+ size?: "sm" | "icon-sm" | "xs" | "icon-xs" | null | undefined;
11
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
12
+ declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, "size"> & VariantProps<typeof inputGroupButtonVariants>): import("react/jsx-runtime").JSX.Element;
13
+ declare function InputGroupText({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
14
+ declare function InputGroupInput({ className, ...props }: React.ComponentProps<"input">): import("react/jsx-runtime").JSX.Element;
15
+ declare function InputGroupTextarea({ className, ...props }: React.ComponentProps<"textarea">): import("react/jsx-runtime").JSX.Element;
16
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, };
@@ -0,0 +1,6 @@
1
+ type Props = {
2
+ animationSize?: number;
3
+ className?: string;
4
+ };
5
+ export default function LoadingIndicator({ animationSize, className, }: Props): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { default as LoadingIndicator } from './LoadingIndicator';
3
+ declare const meta: Meta<typeof LoadingIndicator>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof LoadingIndicator>;
6
+ export declare const Default: Story;
@@ -0,0 +1,16 @@
1
+ import { JSX } from 'react';
2
+ type Props = {
3
+ /**
4
+ * The size (width and height) of the loading animation in pixels.
5
+ * @default 200
6
+ */
7
+ size?: number;
8
+ };
9
+ /**
10
+ * LoadingAnimation is a functional component that renders a rotating SVG loading animation.
11
+ *
12
+ * @param {number} props.size - The size (width and height) of the loading animation in pixels.
13
+ * @returns {JSX.Element} A rotating loading animation SVG.
14
+ */
15
+ export default function LoadingAnimation({ size }: Props): JSX.Element;
16
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ComponentProps } from 'react';
2
+ export default function MainWrapper({ className, ...rest }: ComponentProps<"main">): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { default as MainWrapper } from './MainWrapper';
3
+ /**
4
+ * MainWrapper is a layout container used to wrap page content.
5
+ * It provides consistent padding, border, shadow, and layout structure.
6
+ *
7
+ * Typically used as the main content area inside a page.
8
+ */
9
+ declare const meta: Meta<typeof MainWrapper>;
10
+ export default meta;
11
+ type Story = StoryObj<typeof MainWrapper>;
12
+ /**
13
+ * Default layout wrapper
14
+ */
15
+ export declare const Default: Story;
16
+ /**
17
+ * With custom content
18
+ */
19
+ export declare const WithContent: Story;
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ export type ModalProps = {
3
+ isOpen?: boolean;
4
+ onClose?(open: boolean): void;
5
+ title?: string;
6
+ description?: string;
7
+ children?: ReactNode;
8
+ className?: string;
9
+ shouldShowCloseButton?: boolean;
10
+ };
11
+ export declare function Modal({ isOpen, onClose, description, title, children, className, shouldShowCloseButton, }: ModalProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { Modal } from './Modal';
3
+ declare const meta: Meta<typeof Modal>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Modal>;
6
+ /**
7
+ * Default modal with title + description
8
+ */
9
+ export declare const Default: Story;
10
+ /**
11
+ * Modal with only title
12
+ */
13
+ export declare const WithTitleOnly: Story;
14
+ /**
15
+ * Modal with only description (no title)
16
+ */
17
+ export declare const WithDescriptionOnly: Story;
18
+ /**
19
+ * Modal without header
20
+ */
21
+ export declare const NoHeader: Story;
22
+ /**
23
+ * Long content / scrollable modal
24
+ */
25
+ export declare const LongContent: Story;
26
+ /**
27
+ * Custom width via className
28
+ */
29
+ export declare const CustomWidth: Story;
@@ -0,0 +1,10 @@
1
+ import { Popover as PopoverPrimitive } from 'radix-ui';
2
+ import * as React from "react";
3
+ declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
+ declare function PopoverContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
6
+ declare function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>): import("react/jsx-runtime").JSX.Element;
7
+ declare function PopoverHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
8
+ declare function PopoverTitle({ className, ...props }: React.ComponentProps<"h2">): import("react/jsx-runtime").JSX.Element;
9
+ declare function PopoverDescription({ className, ...props }: React.ComponentProps<"p">): import("react/jsx-runtime").JSX.Element;
10
+ export { Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, };
@@ -0,0 +1,8 @@
1
+ import { ModalProps } from '../modal/Modal';
2
+ import { ModalFooter } from '../ModalFooter';
3
+ export type PromptModalProps = Omit<ModalProps, "children"> & Omit<ModalFooter, "onConfirm"> & {
4
+ promptLabel?: string;
5
+ promptPlaceHolder?: string;
6
+ onConfirm(promptInput: string): void;
7
+ };
8
+ export default function PromptModal({ onCancel, onConfirm, confirmButtonLabel, cancelButtonLabel, promptLabel, promptPlaceHolder, ...rest }: PromptModalProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { default as PromptModal } from './PromptModal';
3
+ declare const meta: Meta<typeof PromptModal>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof PromptModal>;
6
+ /**
7
+ * Default prompt modal
8
+ */
9
+ export declare const Default: Story;
10
+ /**
11
+ * Custom labels and placeholder
12
+ */
13
+ export declare const CustomLabels: Story;
14
+ /**
15
+ * Without field label
16
+ */
17
+ export declare const NoLabel: Story;
18
+ /**
19
+ * Long input scenario
20
+ */
21
+ export declare const LongInput: Story;
22
+ /**
23
+ * Minimal modal (no title/description)
24
+ */
25
+ export declare const Minimal: Story;
26
+ /**
27
+ * Destructive / confirmation-style input
28
+ */
29
+ export declare const DestructiveAction: Story;
@@ -0,0 +1,7 @@
1
+ import { RadioGroup as RadioGroupPrimitive } from 'radix-ui';
2
+ import * as React from "react";
3
+ declare function RadioGroup({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function RadioGroupItem({ className, size, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Item> & {
5
+ size?: "sm" | "md";
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ export { RadioGroup, RadioGroupItem };
@@ -0,0 +1,13 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { RadioGroup } from './RadioGroup';
3
+ type RadioGroupStoryProps = React.ComponentProps<typeof RadioGroup> & {
4
+ size?: "sm" | "md";
5
+ };
6
+ declare const meta: Meta<RadioGroupStoryProps>;
7
+ export default meta;
8
+ type Story = StoryObj<typeof meta>;
9
+ export declare const Default: Story;
10
+ export declare const Small: Story;
11
+ export declare const WithDisabledOption: Story;
12
+ export declare const DisabledAll: Story;
13
+ export declare const ChoiceCard: Story;
@@ -0,0 +1,9 @@
1
+ type SearchInputProps = {
2
+ containerClassName?: string;
3
+ inputClassName?: string;
4
+ placeholder?: string;
5
+ value?: string;
6
+ onChange?(value: string): void;
7
+ };
8
+ export declare function SearchInput({ containerClassName, placeholder, value, onChange, inputClassName, }: SearchInputProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { SearchInput } from './SearchInput';
3
+ declare const meta: Meta<typeof SearchInput>;
4
+ type Story = StoryObj<typeof SearchInput>;
5
+ export default meta;
6
+ export declare const Default: Story;
@@ -0,0 +1,16 @@
1
+ type SearchableSelectOption = {
2
+ label: string;
3
+ value: string;
4
+ };
5
+ type SearchableSelectProps = {
6
+ options?: SearchableSelectOption[];
7
+ value?: string | null;
8
+ placeholder?: string;
9
+ onChange?(value: string | null): void;
10
+ disabled?: boolean;
11
+ name?: string;
12
+ query?: string;
13
+ onQueryChange?(value: string): void;
14
+ };
15
+ export declare function SearchableSelect({ options, placeholder, value, disabled, name, onChange, onQueryChange, query, }: SearchableSelectProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1,25 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { SearchableSelect } from './SearchableSelect';
3
+ declare const meta: Meta<typeof SearchableSelect>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof SearchableSelect>;
6
+ /**
7
+ * Base controlled example
8
+ */
9
+ export declare const Default: Story;
10
+ /**
11
+ * Shows label rendering from value (displayValue logic)
12
+ */
13
+ export declare const WithDefaultValue: Story;
14
+ /**
15
+ * Demonstrates filtering via query
16
+ */
17
+ export declare const TypingAndFiltering: Story;
18
+ /**
19
+ * Shows clear button behavior (value + query reset)
20
+ */
21
+ export declare const WithValueAndQuery: Story;
22
+ /**
23
+ * Disabled state
24
+ */
25
+ export declare const Disabled: Story;
@@ -0,0 +1,15 @@
1
+ export type SelectOption = {
2
+ label: string;
3
+ value: string;
4
+ };
5
+ export type SelectProps = {
6
+ value?: string;
7
+ options?: SelectOption[];
8
+ onChange?(value: string): void;
9
+ placeholder?: string;
10
+ name?: string;
11
+ disabled?: boolean;
12
+ required?: boolean;
13
+ };
14
+ declare function SelectComposite({ value, onChange, options, placeholder, name, disabled, required, }: SelectProps): import("react/jsx-runtime").JSX.Element;
15
+ export { SelectComposite as Select };
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { Select } from './Select';
3
+ declare const meta: Meta<typeof Select>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Select>;
6
+ export declare const Default: Story;
@@ -0,0 +1,17 @@
1
+ import { Select as SelectPrimitive } from 'radix-ui';
2
+ import * as React from "react";
3
+ declare function Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function SelectGroup({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
5
+ declare function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>): import("react/jsx-runtime").JSX.Element;
6
+ declare function SelectTrigger({ className, size, children, hasValue, onClear, ...props }: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
7
+ size?: "sm" | "default";
8
+ hasValue?: boolean;
9
+ onClear?(): void;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ declare function SelectContent({ className, children, position, align, ...props }: React.ComponentProps<typeof SelectPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
12
+ declare function SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>): import("react/jsx-runtime").JSX.Element;
13
+ declare function SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
14
+ declare function SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
15
+ declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>): import("react/jsx-runtime").JSX.Element;
16
+ declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>): import("react/jsx-runtime").JSX.Element;
17
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
@@ -0,0 +1,4 @@
1
+ import { Separator as SeparatorPrimitive } from 'radix-ui';
2
+ import * as React from "react";
3
+ declare function Separator({ className, orientation, decorative, ...props }: React.ComponentProps<typeof SeparatorPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export { Separator };
@@ -0,0 +1,22 @@
1
+ export type ActionButton = {
2
+ label: string;
3
+ onClick(): void;
4
+ };
5
+ type BaseStateIndicatorProps = {
6
+ title: string;
7
+ description: string;
8
+ actionButton?: ActionButton;
9
+ containerClassName?: string;
10
+ };
11
+ type DefaultStateIndicatorProps = {
12
+ variant?: "default";
13
+ } & BaseStateIndicatorProps;
14
+ type EmptyStateIndicatorProps = {
15
+ variant: "empty";
16
+ } & Partial<BaseStateIndicatorProps>;
17
+ type ErrorStateIndicatorProps = {
18
+ variant: "error";
19
+ } & Partial<BaseStateIndicatorProps>;
20
+ export type StateIndicatorProps = DefaultStateIndicatorProps | EmptyStateIndicatorProps | ErrorStateIndicatorProps;
21
+ export default function StateIndicator({ title, description, variant, actionButton, containerClassName, }: StateIndicatorProps): import("react/jsx-runtime").JSX.Element;
22
+ export {};
@@ -0,0 +1,33 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { default as StateIndicator } from './StateIndicator';
3
+ declare const meta: Meta<typeof StateIndicator>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof StateIndicator>;
6
+ /**
7
+ * Default state (no illustration)
8
+ */
9
+ export declare const Default: Story;
10
+ /**
11
+ * Empty state (shows illustration + fallback title)
12
+ */
13
+ export declare const EmptyState: Story;
14
+ /**
15
+ * Error state (shows illustration + fallback title)
16
+ */
17
+ export declare const ErrorState: Story;
18
+ /**
19
+ * Custom title override
20
+ */
21
+ export declare const CustomTitle: Story;
22
+ /**
23
+ * With action button
24
+ */
25
+ export declare const WithAction: Story;
26
+ /**
27
+ * Default variant with action
28
+ */
29
+ export declare const DefaultWithAction: Story;
30
+ /**
31
+ * Long content
32
+ */
33
+ export declare const LongContent: Story;
@@ -0,0 +1 @@
1
+ export default function SuccessAnimation(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ type SuccessModalProps = {
3
+ onClose: () => void;
4
+ isOpen: boolean;
5
+ title?: string;
6
+ description?: string;
7
+ shouldShowCloseButton?: boolean | undefined;
8
+ children?: ReactNode;
9
+ autoCloseDelay?: number;
10
+ };
11
+ export default function SuccessModal({ onClose, isOpen, title, description, shouldShowCloseButton, children, autoCloseDelay, }: SuccessModalProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};