@harshshahcg/survey-render 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/components/QuestionListCarousel.d.ts +16 -0
  2. package/dist/components/QuestionMapper.d.ts +3 -1
  3. package/dist/components/{QuestionOverviewPanel/QuestionOverviewPanel.d.ts → QuestionOverviewPanel.d.ts} +1 -2
  4. package/dist/components/QuestionRenderer.d.ts +3 -1
  5. package/dist/components/{SubmissionLoadingOverlay/SubmissionLoadingOverlay.d.ts → SubmissionLoadingOverlay.d.ts} +0 -1
  6. package/dist/components/{SurveyContainer/SurveyContainer.d.ts → SurveyContainer.d.ts} +5 -3
  7. package/dist/components/SurveyProgressBar.d.ts +25 -0
  8. package/dist/components/SurveyRenderer.d.ts +3 -0
  9. package/dist/components/custom/{DatePicker/DatePicker.d.ts → DatePicker.d.ts} +0 -1
  10. package/dist/components/custom/{Dropdown/Dropdown.d.ts → Dropdown.d.ts} +0 -1
  11. package/dist/components/custom/{MCQSelect/MCQSelect.d.ts → MCQSelect.d.ts} +3 -2
  12. package/dist/components/custom/{TabularInput/TabularInput.d.ts → TabularInput.d.ts} +0 -1
  13. package/dist/components/custom/{TextResponse/TextResponse.d.ts → TextResponse.d.ts} +0 -1
  14. package/dist/components/ui/{ErrorMessage/ErrorMessage.d.ts → ErrorMessage.d.ts} +3 -1
  15. package/dist/components/ui/{Alert/Alert.d.ts → alert.d.ts} +5 -11
  16. package/dist/components/ui/badge.d.ts +9 -0
  17. package/dist/components/ui/button-variants.d.ts +4 -0
  18. package/dist/components/ui/{Button/Button.d.ts → button.d.ts} +3 -6
  19. package/dist/components/ui/{Card/Card.d.ts → card.d.ts} +1 -4
  20. package/dist/components/ui/dialog.d.ts +17 -0
  21. package/dist/components/ui/{Input/Input.d.ts → input.d.ts} +0 -1
  22. package/dist/components/ui/{Label/Label.d.ts → label.d.ts} +1 -2
  23. package/dist/components/ui/{Pagination/Pagination.d.ts → pagination.d.ts} +2 -3
  24. package/dist/components/ui/popover.d.ts +7 -0
  25. package/dist/components/ui/progress.d.ts +4 -0
  26. package/dist/components/ui/select.d.ts +15 -0
  27. package/dist/components/ui/tabs.d.ts +7 -0
  28. package/dist/components/ui/{Textarea/Textarea.d.ts → textarea.d.ts} +0 -1
  29. package/dist/index.d.ts +2 -1
  30. package/dist/lib/utils.d.ts +2 -5
  31. package/dist/surveyRender.js +6429 -1803
  32. package/dist/surveyRender.js.map +1 -1
  33. package/dist/surveyRender.umd.cjs +85 -11
  34. package/dist/surveyRender.umd.cjs.map +1 -1
  35. package/dist/utils/themeStatusStyles.d.ts +1 -1
  36. package/package.json +17 -2
  37. package/dist/components/QuestionListCarousel/QuestionListCarousel.d.ts +0 -10
  38. package/dist/components/QuestionListCarousel/index.d.ts +0 -2
  39. package/dist/components/QuestionOverviewPanel/index.d.ts +0 -2
  40. package/dist/components/SubmissionLoadingOverlay/index.d.ts +0 -2
  41. package/dist/components/SurveyContainer/index.d.ts +0 -2
  42. package/dist/components/SurveyProgressBar/SurveyProgressBar.d.ts +0 -16
  43. package/dist/components/SurveyProgressBar/index.d.ts +0 -2
  44. package/dist/components/custom/DatePicker/index.d.ts +0 -2
  45. package/dist/components/custom/Dropdown/index.d.ts +0 -2
  46. package/dist/components/custom/MCQSelect/index.d.ts +0 -2
  47. package/dist/components/custom/TabularInput/index.d.ts +0 -2
  48. package/dist/components/custom/TextResponse/index.d.ts +0 -2
  49. package/dist/components/icons.d.ts +0 -10
  50. package/dist/components/ui/Alert/index.d.ts +0 -1
  51. package/dist/components/ui/Badge/Badge.d.ts +0 -9
  52. package/dist/components/ui/Badge/index.d.ts +0 -1
  53. package/dist/components/ui/Button/index.d.ts +0 -2
  54. package/dist/components/ui/Card/index.d.ts +0 -1
  55. package/dist/components/ui/Dialog/Dialog.d.ts +0 -30
  56. package/dist/components/ui/Dialog/index.d.ts +0 -2
  57. package/dist/components/ui/ErrorMessage/index.d.ts +0 -1
  58. package/dist/components/ui/Input/index.d.ts +0 -1
  59. package/dist/components/ui/Label/index.d.ts +0 -2
  60. package/dist/components/ui/Pagination/index.d.ts +0 -1
  61. package/dist/components/ui/Popover/Popover.d.ts +0 -18
  62. package/dist/components/ui/Popover/index.d.ts +0 -2
  63. package/dist/components/ui/Progress/Progress.d.ts +0 -8
  64. package/dist/components/ui/Progress/index.d.ts +0 -2
  65. package/dist/components/ui/Select/Select.d.ts +0 -38
  66. package/dist/components/ui/Select/index.d.ts +0 -2
  67. package/dist/components/ui/Tabs/Tabs.d.ts +0 -19
  68. package/dist/components/ui/Tabs/index.d.ts +0 -2
  69. package/dist/components/ui/Textarea/index.d.ts +0 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Theme-based status styles for question indicators.
3
- * Returns CSS class names from status.css (no Tailwind).
3
+ * Uses CSS variables (--primary-600, --error-200, etc.) so themes control colors.
4
4
  * Apply theme via data-theme on a parent element (e.g. data-theme="emerald").
5
5
  */
6
6
  export type QuestionStatus = "completed" | "unanswered" | "required" | "error";
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@harshshahcg/survey-render",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://gitlab.battleofminds.net/harsh.shah/survey-render-lib.git"
7
7
  },
8
- "description": "Reusable Vite React + TypeScript survey rendering library (framework-independent UI)",
8
+ "description": "Reusable Vite React + TypeScript survey rendering library",
9
9
  "type": "module",
10
10
  "main": "./dist/surveyRender.umd.cjs",
11
11
  "module": "./dist/surveyRender.js",
@@ -48,14 +48,29 @@
48
48
  "react-dom": ">=18.0.0"
49
49
  },
50
50
  "devDependencies": {
51
+ "@tailwindcss/vite": "^4.1.11",
51
52
  "@types/react": "^18.2.0",
52
53
  "@types/react-dom": "^18.2.0",
53
54
  "@vitejs/plugin-react": "^4.2.0",
54
55
  "react": "^18.2.0",
55
56
  "react-dom": "^18.2.0",
57
+ "tailwindcss": "^4.1.11",
58
+ "tw-animate-css": "^1.4.0",
56
59
  "typescript": "~5.8.0",
57
60
  "vite": "^6.0.0",
58
61
  "vite-plugin-css-injected-by-js": "^3.5.2",
59
62
  "vitest": "^4.0.18"
63
+ },
64
+ "dependencies": {
65
+ "@radix-ui/react-dialog": "^1.1.14",
66
+ "@radix-ui/react-popover": "^1.1.14",
67
+ "@radix-ui/react-progress": "^1.1.7",
68
+ "@radix-ui/react-select": "^2.2.5",
69
+ "@radix-ui/react-slot": "^1.2.3",
70
+ "@radix-ui/react-tabs": "^1.1.12",
71
+ "class-variance-authority": "^0.7.1",
72
+ "clsx": "^2.1.1",
73
+ "lucide-react": "^0.536.0",
74
+ "tailwind-merge": "^3.3.1"
60
75
  }
61
76
  }
@@ -1,10 +0,0 @@
1
- import "./QuestionListCarousel.css";
2
- export type QuestionStatus = "completed" | "unanswered" | "required" | "error";
3
- export interface QuestionListCarouselProps {
4
- questions: string[];
5
- activeQuestionId: string | undefined;
6
- onQuestionSelect: (questionId: string) => void;
7
- questionStatusMap?: Record<string, QuestionStatus>;
8
- className?: string;
9
- }
10
- export declare function QuestionListCarousel({ questions, activeQuestionId, onQuestionSelect, questionStatusMap, className, }: QuestionListCarouselProps): import("react/jsx-runtime").JSX.Element | null;
@@ -1,2 +0,0 @@
1
- export { QuestionListCarousel } from "./QuestionListCarousel";
2
- export type { QuestionListCarouselProps, QuestionStatus } from "./QuestionListCarousel";
@@ -1,2 +0,0 @@
1
- export { QuestionOverviewPanel } from "./QuestionOverviewPanel";
2
- export type { QuestionOverviewPanelProps } from "./QuestionOverviewPanel";
@@ -1,2 +0,0 @@
1
- export { SubmissionLoadingOverlay } from "./SubmissionLoadingOverlay";
2
- export type { SubmissionLoadingOverlayProps } from "./SubmissionLoadingOverlay";
@@ -1,2 +0,0 @@
1
- export { SurveyContainer } from "./SurveyContainer";
2
- export type { SurveyContainerProps, SurveyProgressBarConfig } from "./SurveyContainer";
@@ -1,16 +0,0 @@
1
- import "./SurveyProgressBar.css";
2
- export type ProgressMode = "position" | "completion";
3
- export type ProgressBarVariant = "default" | "gradient";
4
- export interface SurveyProgressBarProps {
5
- currentIndex: number;
6
- totalSteps: number;
7
- progressMode?: ProgressMode;
8
- progressValue?: number;
9
- showLabel?: boolean;
10
- showPercentage?: boolean;
11
- labelFormat?: string;
12
- progressMaxWidth?: string;
13
- variant?: ProgressBarVariant;
14
- className?: string;
15
- }
16
- export declare function SurveyProgressBar({ currentIndex, totalSteps, progressMode, progressValue, showLabel, showPercentage, labelFormat, progressMaxWidth, variant, className, }: SurveyProgressBarProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- export { SurveyProgressBar } from "./SurveyProgressBar";
2
- export type { SurveyProgressBarProps, ProgressMode, ProgressBarVariant } from "./SurveyProgressBar";
@@ -1,2 +0,0 @@
1
- export { default } from "./DatePicker";
2
- export type { DatePickerProps } from "./DatePicker";
@@ -1,2 +0,0 @@
1
- export { default } from "./Dropdown";
2
- export type { DropdownProps, DropdownOption } from "./Dropdown";
@@ -1,2 +0,0 @@
1
- export { default } from "./MCQSelect";
2
- export type { MCQSelectProps, MCQOption } from "./MCQSelect";
@@ -1,2 +0,0 @@
1
- export { default } from "./TabularInput";
2
- export type { TabularInputOption, TabularInputRow, TabularInputColumn, TabularInputValue, TabularInputConfig, TabularInputProps, } from "./TabularInput";
@@ -1,2 +0,0 @@
1
- export { default } from "./TextResponse";
2
- export type { TextResponseProps } from "./TextResponse";
@@ -1,10 +0,0 @@
1
- /**
2
- * Inline SVG icons (replaces lucide-react).
3
- */
4
- export declare function IconX(props: React.SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
5
- export declare function IconChevronDown(props: React.SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
6
- export declare function IconChevronUp(props: React.SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
7
- export declare function IconCheck(props: React.SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
8
- export declare function IconChevronLeft(props: React.SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
9
- export declare function IconChevronRight(props: React.SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
10
- export declare function IconMoreHorizontal(props: React.SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- export { Alert, AlertTitle, AlertDescription } from "./Alert";
@@ -1,9 +0,0 @@
1
- import * as React from "react";
2
- import "./Badge.css";
3
- type BadgeVariant = "default" | "secondary" | "destructive" | "outline";
4
- declare const variantClass: Record<BadgeVariant, string>;
5
- declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & {
6
- variant?: BadgeVariant;
7
- asChild?: boolean;
8
- }): import("react/jsx-runtime").JSX.Element;
9
- export { Badge, variantClass as badgeVariants };
@@ -1 +0,0 @@
1
- export { Badge, badgeVariants } from "./Badge";
@@ -1,2 +0,0 @@
1
- export { Button } from "./Button";
2
- export type { ButtonProps } from "./Button";
@@ -1 +0,0 @@
1
- export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, } from "./Card";
@@ -1,30 +0,0 @@
1
- import * as React from "react";
2
- import "./Dialog.css";
3
- export interface DialogProps {
4
- open?: boolean;
5
- onOpenChange?: (open: boolean) => void;
6
- defaultOpen?: boolean;
7
- children: React.ReactNode;
8
- }
9
- declare function Dialog({ open: controlledOpen, onOpenChange, defaultOpen, children, }: DialogProps): import("react/jsx-runtime").JSX.Element;
10
- declare function DialogTrigger({ children, asChild, ...props }: React.ComponentProps<"button"> & {
11
- asChild?: boolean;
12
- }): import("react/jsx-runtime").JSX.Element;
13
- declare function DialogPortal({ children, container, }: {
14
- children: React.ReactNode;
15
- container?: HTMLElement | null;
16
- }): React.ReactPortal | null;
17
- declare function DialogOverlay({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element | null;
18
- declare function DialogClose({ className, children, ...props }: React.ComponentProps<"button">): import("react/jsx-runtime").JSX.Element;
19
- export interface DialogContentProps extends React.ComponentProps<"div"> {
20
- showCloseButton?: boolean;
21
- container?: HTMLElement | null;
22
- }
23
- declare function DialogContent({ className, children, showCloseButton, container, ...props }: DialogContentProps): import("react/jsx-runtime").JSX.Element | null;
24
- declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
25
- declare function DialogFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
26
- declare function DialogTitle({ className, ...props }: React.ComponentProps<"div"> & {
27
- id?: string;
28
- }): import("react/jsx-runtime").JSX.Element;
29
- declare function DialogDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
30
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
@@ -1,2 +0,0 @@
1
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, } from "./Dialog";
2
- export type { DialogProps, DialogContentProps } from "./Dialog";
@@ -1 +0,0 @@
1
- export { ErrorMessage } from "./ErrorMessage";
@@ -1 +0,0 @@
1
- export { Input } from "./Input";
@@ -1,2 +0,0 @@
1
- export { Label } from "./Label";
2
- export type { LabelProps } from "./Label";
@@ -1 +0,0 @@
1
- export { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis, } from "./Pagination";
@@ -1,18 +0,0 @@
1
- import * as React from "react";
2
- import "./Popover.css";
3
- export interface PopoverProps {
4
- open?: boolean;
5
- onOpenChange?: (open: boolean) => void;
6
- children: React.ReactNode;
7
- }
8
- declare function Popover({ open: openProp, onOpenChange, children, }: PopoverProps): import("react/jsx-runtime").JSX.Element;
9
- declare function PopoverTrigger({ asChild, children, ...props }: React.ComponentProps<"button"> & {
10
- asChild?: boolean;
11
- }): import("react/jsx-runtime").JSX.Element;
12
- export interface PopoverContentProps extends React.ComponentProps<"div"> {
13
- align?: "start" | "center" | "end";
14
- sideOffset?: number;
15
- }
16
- declare function PopoverContent({ className, align, sideOffset, ...props }: PopoverContentProps): React.ReactPortal | null;
17
- declare function PopoverAnchor(props: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
18
- export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };
@@ -1,2 +0,0 @@
1
- export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } from "./Popover";
2
- export type { PopoverProps, PopoverContentProps } from "./Popover";
@@ -1,8 +0,0 @@
1
- import * as React from "react";
2
- import "./Progress.css";
3
- export interface ProgressProps extends React.ComponentProps<"div"> {
4
- value?: number | null;
5
- max?: number;
6
- }
7
- declare function Progress({ className, value, max, ...props }: ProgressProps): import("react/jsx-runtime").JSX.Element;
8
- export { Progress };
@@ -1,2 +0,0 @@
1
- export { Progress } from "./Progress";
2
- export type { ProgressProps } from "./Progress";
@@ -1,38 +0,0 @@
1
- import * as React from "react";
2
- import "./Select.css";
3
- export interface SelectProps {
4
- value?: string;
5
- onValueChange?: (value: string) => void;
6
- defaultValue?: string;
7
- open?: boolean;
8
- onOpenChange?: (open: boolean) => void;
9
- disabled?: boolean;
10
- required?: boolean;
11
- name?: string;
12
- dir?: "ltr" | "rtl";
13
- children: React.ReactNode;
14
- }
15
- declare function Select({ value: valueProp, onValueChange, defaultValue, open: openProp, onOpenChange, disabled, children, }: SelectProps): import("react/jsx-runtime").JSX.Element;
16
- declare function SelectGroup({ children, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
17
- declare function SelectValue({ placeholder, children, }: {
18
- placeholder?: string;
19
- children?: React.ReactNode;
20
- }): import("react/jsx-runtime").JSX.Element;
21
- export interface SelectTriggerProps extends React.ComponentProps<"button"> {
22
- size?: "sm" | "default";
23
- }
24
- declare function SelectTrigger({ className, size, children, ...props }: SelectTriggerProps): import("react/jsx-runtime").JSX.Element;
25
- declare function SelectContent({ className, position, children, ...props }: React.ComponentProps<"div"> & {
26
- position?: "popper" | "item-aligned";
27
- }): import("react/jsx-runtime").JSX.Element | null;
28
- declare function SelectViewport({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
29
- declare function SelectLabel({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
30
- export interface SelectItemProps extends React.ComponentProps<"div"> {
31
- value: string;
32
- disabled?: boolean;
33
- }
34
- declare function SelectItem({ className, children, value, disabled, ...props }: SelectItemProps): import("react/jsx-runtime").JSX.Element;
35
- declare function SelectSeparator({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
36
- declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
37
- declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
38
- export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectViewport, };
@@ -1,2 +0,0 @@
1
- export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectViewport, } from "./Select";
2
- export type { SelectProps, SelectTriggerProps, SelectItemProps } from "./Select";
@@ -1,19 +0,0 @@
1
- import * as React from "react";
2
- import "./Tabs.css";
3
- export interface TabsProps extends React.ComponentProps<"div"> {
4
- value?: string;
5
- onValueChange?: (value: string) => void;
6
- defaultValue?: string;
7
- children: React.ReactNode;
8
- }
9
- declare function Tabs({ className, value: valueProp, onValueChange, defaultValue, children, ...props }: TabsProps): import("react/jsx-runtime").JSX.Element;
10
- declare function TabsList({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
11
- export interface TabsTriggerProps extends React.ComponentProps<"button"> {
12
- value: string;
13
- }
14
- declare function TabsTrigger({ className, value, children, ...props }: TabsTriggerProps): import("react/jsx-runtime").JSX.Element;
15
- export interface TabsContentProps extends React.ComponentProps<"div"> {
16
- value: string;
17
- }
18
- declare function TabsContent({ className, value, children, ...props }: TabsContentProps): import("react/jsx-runtime").JSX.Element | null;
19
- export { Tabs, TabsList, TabsTrigger, TabsContent };
@@ -1,2 +0,0 @@
1
- export { Tabs, TabsList, TabsTrigger, TabsContent } from "./Tabs";
2
- export type { TabsProps, TabsTriggerProps, TabsContentProps } from "./Tabs";
@@ -1 +0,0 @@
1
- export { Textarea } from "./Textarea";