@classytic/fluid 0.4.1 → 0.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 (51) hide show
  1. package/README.md +21 -1
  2. package/dist/client/calendar.d.mts +1 -2
  3. package/dist/client/calendar.mjs +4 -4
  4. package/dist/client/color-picker.d.mts +94 -0
  5. package/dist/client/color-picker.mjs +392 -0
  6. package/dist/client/core.d.mts +243 -557
  7. package/dist/client/core.mjs +351 -1462
  8. package/dist/client/error.d.mts +41 -41
  9. package/dist/client/error.mjs +35 -35
  10. package/dist/client/gallery.d.mts +175 -0
  11. package/dist/client/gallery.mjs +546 -0
  12. package/dist/client/hooks.d.mts +57 -39
  13. package/dist/client/hooks.mjs +29 -7
  14. package/dist/client/spreadsheet.d.mts +30 -27
  15. package/dist/client/spreadsheet.mjs +80 -80
  16. package/dist/client/table.d.mts +66 -33
  17. package/dist/client/table.mjs +87 -54
  18. package/dist/client/theme.mjs +1 -1
  19. package/dist/command.d.mts +6 -4
  20. package/dist/command.mjs +3 -3
  21. package/dist/compact.d.mts +97 -95
  22. package/dist/compact.mjs +336 -322
  23. package/dist/dashboard.d.mts +614 -422
  24. package/dist/dashboard.mjs +1051 -762
  25. package/dist/{dropdown-wrapper-B86u9Fri.mjs → dropdown-wrapper-B9nRDUlz.mjs} +25 -35
  26. package/dist/forms.d.mts +1037 -972
  27. package/dist/forms.mjs +2849 -2721
  28. package/dist/index.d.mts +218 -152
  29. package/dist/index.mjs +357 -264
  30. package/dist/layouts.d.mts +94 -94
  31. package/dist/layouts.mjs +115 -110
  32. package/dist/phone-input-B9_XPNvv.mjs +429 -0
  33. package/dist/phone-input-CLH_UjQZ.d.mts +31 -0
  34. package/dist/{search-context-DR7DBs7S.mjs → search-context-1g3ZmOvx.mjs} +1 -1
  35. package/dist/search.d.mts +168 -164
  36. package/dist/search.mjs +305 -301
  37. package/dist/{sheet-wrapper-C13Y-Q6w.mjs → sheet-wrapper-B2uxookb.mjs} +1 -1
  38. package/dist/timeline-Bgu1mIe9.d.mts +373 -0
  39. package/dist/timeline-HJtWf4Op.mjs +804 -0
  40. package/dist/{use-base-search-BGgWnWaF.d.mts → use-base-search-DFC4QKYU.d.mts} +1 -1
  41. package/dist/{use-media-query-BnVNIKT4.mjs → use-media-query-ChLfFChU.mjs} +6 -7
  42. package/package.json +10 -2
  43. /package/dist/{api-pagination-CJ0vR_w6.d.mts → api-pagination-C30ser2L.d.mts} +0 -0
  44. /package/dist/{filter-utils-DqMmy_v-.mjs → filter-utils-BGIvtq1R.mjs} +0 -0
  45. /package/dist/{filter-utils-IZ0GtuPo.d.mts → filter-utils-DOFTBWm1.d.mts} +0 -0
  46. /package/dist/{use-debounce-xmZucz5e.mjs → use-debounce-BNoNiEon.mjs} +0 -0
  47. /package/dist/{use-keyboard-shortcut-Bl6YM5Q7.mjs → use-keyboard-shortcut-C_Vk-36P.mjs} +0 -0
  48. /package/dist/{use-keyboard-shortcut-_mRCh3QO.d.mts → use-keyboard-shortcut-Q4CSPzSI.d.mts} +0 -0
  49. /package/dist/{use-mobile-BX3SQVo2.mjs → use-mobile-CnEmFiQx.mjs} +0 -0
  50. /package/dist/{use-scroll-detection-CsgsQYvy.mjs → use-scroll-detection-BKfqkmEC.mjs} +0 -0
  51. /package/dist/{utils-CDue7cEt.d.mts → utils-rqvYP1by.d.mts} +0 -0
@@ -1,176 +1,182 @@
1
- import { n as ApiPaginationData, r as ApiPaginationProps, t as ApiPagination } from "../api-pagination-CJ0vR_w6.mjs";
2
- import * as react_jsx_runtime0 from "react/jsx-runtime";
1
+ import { A as DataCard, B as AccordionSectionProps, C as DetailItem, D as DetailViewProps, E as DetailViewItemData, F as LoadingCard, H as FaqAccordionProps, I as LoadingCardProps, L as StatsCard, M as DragHandleProps, N as DraggableCard, O as CardWrapper, P as DraggableCardProps, R as StatsCardProps, S as InfoRowProps, T as DetailView, U as FaqItem, V as FaqAccordion, _ as PillIndicatorProps, a as Pill, b as PillStatusProps, c as PillAvatarGroupProps, d as PillButtonProps, f as PillDelta, g as PillIndicator, h as PillIconProps, i as TimelineStatus, j as DataCardProps, k as CardWrapperProps, l as PillAvatarProps, m as PillIcon, n as TimelineItem, o as PillAvatar, p as PillDeltaProps, r as TimelineProps, s as PillAvatarGroup, t as Timeline, u as PillButton, v as PillProps, w as DetailItemProps, x as InfoRow, y as PillStatus, z as AccordionSection } from "../timeline-Bgu1mIe9.mjs";
2
+ import { n as ApiPaginationData, r as ApiPaginationProps, t as ApiPagination } from "../api-pagination-C30ser2L.mjs";
3
+ import { i as PhoneInputProps, n as PhoneCountry, r as PhoneInput, t as DEFAULT_COUNTRIES } from "../phone-input-CLH_UjQZ.mjs";
3
4
  import * as react from "react";
4
- import { ComponentPropsWithoutRef, ComponentType, ElementType, HTMLAttributes, ReactNode, RefObject } from "react";
5
- import { LucideIcon, LucideProps } from "lucide-react";
5
+ import { ComponentPropsWithoutRef, ElementType, ReactNode, RefObject } from "react";
6
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
7
+ import { LucideIcon } from "lucide-react";
6
8
  import { VariantProps } from "class-variance-authority";
7
9
  import * as class_variance_authority_types0 from "class-variance-authority/types";
8
10
 
9
- //#region src/components/accordion-wrapper.d.ts
10
- interface AccordionSectionProps {
11
- title: string;
12
- icon?: ReactNode;
13
- children: ReactNode;
14
- defaultOpen?: boolean;
11
+ //#region src/components/animated-wrapper.d.ts
12
+ /** Available entrance animation types */
13
+ type Animation = "fadeIn" | "fadeInUp" | "scaleIn" | "slideInLeft" | "slideInRight" | "slideInUp" | "slideInDown";
14
+ /** Slide direction for SlideIn component */
15
+ type SlideDirection = "left" | "right" | "up" | "down";
16
+ /** Options for the useInView hook */
17
+ interface UseInViewOptions {
18
+ /** IntersectionObserver rootMargin (default: "0px") */
19
+ margin?: string;
20
+ /** Trigger only once (default: true) */
21
+ once?: boolean;
22
+ /** Enable/disable observation (default: true) */
23
+ enabled?: boolean;
24
+ }
25
+ /** Shared base props for animation components */
26
+ interface AnimateBaseProps {
27
+ children?: ReactNode;
28
+ /** Delay in ms before animation starts */
29
+ delay?: number;
30
+ /** Animation duration in ms */
31
+ duration?: number;
32
+ /** Only animate when element scrolls into viewport */
33
+ inView?: boolean;
34
+ /** IntersectionObserver rootMargin for inView trigger */
35
+ inViewMargin?: string;
36
+ /** Fire animation only once (default: true) */
37
+ once?: boolean;
38
+ /** Disable animation entirely — renders children immediately */
39
+ disabled?: boolean;
15
40
  className?: string;
16
- badge?: ReactNode;
41
+ /** HTML element to render as (default: "div") */
42
+ as?: ElementType;
17
43
  }
18
- /**
19
- * AccordionSection - Single collapsible section with smooth animation
20
- *
21
- * @example
22
- * ```tsx
23
- * <AccordionSection title="Settings" icon={<Settings className="h-4 w-4" />}>
24
- * <div>Content here</div>
25
- * </AccordionSection>
26
- * ```
27
- */
28
- declare const AccordionSection: react.NamedExoticComponent<AccordionSectionProps>;
29
- interface FaqItem {
30
- id: string;
31
- question: string;
32
- answer: ReactNode;
44
+ interface SlideInProps extends AnimateBaseProps {
45
+ /** Direction to slide from */
46
+ direction?: SlideDirection;
33
47
  }
34
- interface FaqAccordionProps {
35
- items: FaqItem[];
36
- defaultOpen?: string;
48
+ interface StaggerChildrenProps {
49
+ children?: ReactNode;
50
+ /** Animation type for each child */
51
+ animation?: Animation;
52
+ /** Delay between each child in ms */
53
+ staggerDelay?: number;
54
+ /** Initial delay before first child animates */
55
+ initialDelay?: number;
56
+ /** Duration per child animation */
57
+ duration?: number;
58
+ inView?: boolean;
59
+ inViewMargin?: string;
60
+ once?: boolean;
61
+ disabled?: boolean;
37
62
  className?: string;
38
- /** Allow multiple items to be open at once */
39
- multiple?: boolean;
63
+ /** Extra classes applied to each child wrapper div */
64
+ childClassName?: string;
65
+ as?: ElementType;
66
+ }
67
+ interface AnimatedTextProps {
68
+ /** The text string to animate */
69
+ text: string;
70
+ as?: ElementType;
71
+ animation?: Animation;
72
+ /** Split text by word or character */
73
+ splitBy?: "word" | "character";
74
+ /** Delay between each segment in ms */
75
+ staggerDelay?: number;
76
+ delay?: number;
77
+ duration?: number;
78
+ inView?: boolean;
79
+ inViewMargin?: string;
80
+ once?: boolean;
81
+ disabled?: boolean;
82
+ className?: string;
83
+ /** Extra classes on each animated text segment */
84
+ segmentClassName?: string;
85
+ }
86
+ interface AnimatedCounterProps {
87
+ /** Start value (default: 0) */
88
+ from?: number;
89
+ /** Target value to count to */
90
+ to: number;
91
+ /** Count-up duration in ms (default: 2000) */
92
+ duration?: number;
93
+ /** Delay before counting starts in ms */
94
+ delay?: number;
95
+ /** Intl.NumberFormat locale for number formatting (e.g. "en-US") */
96
+ locale?: string;
97
+ /** Text rendered before the number */
98
+ prefix?: string;
99
+ /** Text rendered after the number */
100
+ suffix?: string;
101
+ /** Decimal places (default: 0) */
102
+ decimals?: number;
103
+ /** Custom number formatter — overrides locale/decimals */
104
+ formatter?: (value: number) => string;
105
+ inView?: boolean;
106
+ inViewMargin?: string;
107
+ once?: boolean;
108
+ disabled?: boolean;
109
+ className?: string;
110
+ as?: ElementType;
40
111
  }
41
112
  /**
42
- * FaqAccordion - FAQ-style accordion where only one item can be open by default
113
+ * useInView observe when an element enters the viewport.
43
114
  *
44
115
  * @example
45
116
  * ```tsx
46
- * <FaqAccordion
47
- * items={[
48
- * { id: "1", question: "What is this?", answer: "A FAQ accordion" },
49
- * { id: "2", question: "How does it work?", answer: "Click to expand" },
50
- * ]}
51
- * />
117
+ * const ref = useRef<HTMLDivElement>(null);
118
+ * const isInView = useInView(ref, { once: true, margin: "-100px" });
119
+ * return <div ref={ref}>{isInView ? "Visible!" : "Hidden"}</div>;
52
120
  * ```
53
121
  */
54
- declare const FaqAccordion: react.NamedExoticComponent<FaqAccordionProps>;
55
- //#endregion
56
- //#region src/components/card-wrapper.d.ts
57
- declare const CARD_VARIANTS: {
58
- readonly default: "";
59
- readonly outline: "border-2";
60
- readonly ghost: "border-0 shadow-none bg-transparent";
61
- readonly elevated: "shadow-lg border-0";
62
- readonly primary: "border-primary/20 bg-primary/5";
63
- readonly secondary: "border-secondary/20 bg-secondary/5";
64
- readonly destructive: "border-destructive/20 bg-destructive/5";
65
- readonly success: "border-green-500/20 bg-green-500/5";
66
- readonly warning: "border-yellow-500/20 bg-yellow-500/5";
67
- };
68
- declare const CARD_SIZES: {
69
- readonly sm: "p-3";
70
- readonly default: "p-6";
71
- readonly lg: "p-8";
72
- readonly xl: "p-10";
73
- };
74
- interface CardWrapperProps {
75
- title?: ReactNode;
76
- description?: ReactNode;
77
- children?: ReactNode;
78
- footer?: ReactNode;
79
- className?: string;
80
- headerClassName?: string;
81
- contentClassName?: string;
82
- footerClassName?: string;
83
- variant?: keyof typeof CARD_VARIANTS;
84
- size?: keyof typeof CARD_SIZES;
85
- hideHeader?: boolean;
86
- }
87
- declare function CardWrapper({
88
- title,
89
- description,
90
- children,
91
- footer,
92
- className,
93
- headerClassName,
94
- contentClassName,
95
- footerClassName,
96
- variant,
97
- size,
98
- hideHeader,
99
- ...props
100
- }: CardWrapperProps): react_jsx_runtime0.JSX.Element;
101
- interface DataCardProps extends Omit<CardWrapperProps, "children"> {
102
- /** Each item's `color` should be a complete Tailwind class (e.g. "text-green-600") */
103
- data: Array<{
104
- label: string;
105
- value: ReactNode;
106
- color?: string;
107
- }>;
108
- /** Number of columns in the data grid. Default: 3 (2 on mobile) */
109
- cols?: 1 | 2 | 3 | 4;
110
- }
111
- declare function DataCard({
112
- title,
113
- data,
114
- cols,
115
- className,
122
+ declare function useInView(ref: RefObject<Element | null>, options?: UseInViewOptions): boolean;
123
+ /** Fade in with opacity transition */
124
+ declare function FadeIn(props: AnimateBaseProps): react_jsx_runtime0.JSX.Element;
125
+ /** Fade in with upward motion */
126
+ declare function FadeInUp(props: AnimateBaseProps): react_jsx_runtime0.JSX.Element;
127
+ /** Scale up into view */
128
+ declare function ScaleIn(props: AnimateBaseProps): react_jsx_runtime0.JSX.Element;
129
+ /** Slide in from a specified direction */
130
+ declare function SlideIn({
131
+ direction,
116
132
  ...props
117
- }: DataCardProps): react_jsx_runtime0.JSX.Element;
118
- interface LoadingCardProps extends Omit<CardWrapperProps, "children"> {}
119
- declare function LoadingCard({
120
- title,
121
- description,
133
+ }: SlideInProps): react_jsx_runtime0.JSX.Element;
134
+ declare function StaggerChildren({
135
+ children,
136
+ animation,
137
+ staggerDelay,
138
+ initialDelay,
139
+ duration,
140
+ inView,
141
+ inViewMargin,
142
+ once,
143
+ disabled,
122
144
  className,
123
- ...props
124
- }: LoadingCardProps): react_jsx_runtime0.JSX.Element;
125
- interface StatsCardProps extends Omit<CardWrapperProps, "children" | "variant"> {
126
- value: ReactNode;
127
- icon?: ReactNode;
128
- trend?: {
129
- type: "up" | "down" | "neutral";
130
- value: string;
131
- };
132
- /** Visual variant for the card and icon styling */
133
- statsVariant?: "default" | "success" | "warning" | "danger" | "info";
134
- /** Additional class for the icon wrapper */
135
- iconClassName?: string;
136
- }
137
- declare function StatsCard({
138
- title,
139
- value,
140
- description,
141
- icon,
142
- trend,
145
+ childClassName,
146
+ as
147
+ }: StaggerChildrenProps): react.ReactElement<any, string | react.JSXElementConstructor<any>>;
148
+ declare function AnimatedText({
149
+ text,
150
+ as,
151
+ animation,
152
+ splitBy,
153
+ staggerDelay,
154
+ delay,
155
+ duration,
156
+ inView,
157
+ inViewMargin,
158
+ once,
159
+ disabled,
143
160
  className,
144
- statsVariant,
145
- iconClassName,
146
- ...props
147
- }: StatsCardProps): react_jsx_runtime0.JSX.Element;
148
- interface DragHandleProps extends HTMLAttributes<HTMLDivElement> {
149
- icon?: ReactNode;
150
- }
151
- interface DraggableCardProps extends Omit<CardWrapperProps, "children"> {
152
- subtitle?: ReactNode;
153
- badges?: ReactNode;
154
- actions?: ReactNode;
155
- details?: ReactNode;
156
- dragHandleProps?: DragHandleProps;
157
- isDragging?: boolean;
158
- isHidden?: boolean;
159
- children?: ReactNode;
160
- }
161
- declare function DraggableCard({
162
- title,
163
- subtitle,
164
- badges,
165
- actions,
166
- details,
167
- dragHandleProps,
161
+ segmentClassName
162
+ }: AnimatedTextProps): react.ReactElement<any, string | react.JSXElementConstructor<any>>;
163
+ declare function AnimatedCounter({
164
+ from,
165
+ to,
166
+ duration,
167
+ delay,
168
+ locale,
169
+ prefix,
170
+ suffix,
171
+ decimals,
172
+ formatter,
173
+ inView,
174
+ inViewMargin,
175
+ once,
176
+ disabled,
168
177
  className,
169
- isDragging,
170
- isHidden,
171
- children,
172
- ...props
173
- }: DraggableCardProps): react_jsx_runtime0.JSX.Element;
178
+ as
179
+ }: AnimatedCounterProps): react.ReactElement<any, string | react.JSXElementConstructor<any>>;
174
180
  //#endregion
175
181
  //#region src/components/client-submit-button.d.ts
176
182
  interface ClientSubmitButtonProps {
@@ -420,9 +426,11 @@ interface CustomPaginationProps {
420
426
  hasNext: boolean;
421
427
  hasPrev: boolean;
422
428
  onPageChange: (page: number) => void;
429
+ className?: string;
423
430
  }
424
431
  declare function CustomPagination({
425
432
  page,
433
+ className,
426
434
  onPageChange,
427
435
  pages,
428
436
  hasPrev,
@@ -432,11 +440,13 @@ interface PaginationInfoProps {
432
440
  page: number;
433
441
  total: number;
434
442
  limit?: number;
443
+ className?: string;
435
444
  }
436
445
  declare function PaginationInfo({
437
446
  page,
438
447
  total,
439
- limit
448
+ limit,
449
+ className
440
450
  }: PaginationInfoProps): react_jsx_runtime0.JSX.Element;
441
451
  //#endregion
442
452
  //#region src/components/dialog-wrapper.d.ts
@@ -513,20 +523,31 @@ declare function FormDialog({
513
523
  interface DropdownWrapperProps {
514
524
  trigger: react.ReactNode;
515
525
  children: react.ReactNode;
526
+ /** Content above the menu items (plain div — no Group context needed) */
527
+ header?: react.ReactNode;
528
+ /** Content below the menu items (wrapped in Group for Base UI compat) */
529
+ footer?: react.ReactNode;
516
530
  align?: "start" | "center" | "end";
517
531
  side?: "top" | "right" | "bottom" | "left";
518
532
  sideOffset?: number;
519
533
  className?: string;
520
534
  contentClassName?: string;
535
+ /** Controlled open state */
536
+ open?: boolean;
537
+ onOpenChange?: (open: boolean) => void;
521
538
  }
522
539
  declare function DropdownWrapper({
523
540
  trigger,
524
541
  children,
542
+ header,
543
+ footer,
525
544
  align,
526
545
  side,
527
546
  sideOffset,
528
547
  className,
529
548
  contentClassName,
549
+ open,
550
+ onOpenChange,
530
551
  ...props
531
552
  }: DropdownWrapperProps): react_jsx_runtime0.JSX.Element;
532
553
  interface ActionDropdownItem {
@@ -687,20 +708,6 @@ declare function ErrorStateInline({
687
708
  icon
688
709
  }: ErrorStateInlineProps): react_jsx_runtime0.JSX.Element;
689
710
  //#endregion
690
- //#region src/components/info-row.d.ts
691
- interface InfoRowProps {
692
- label: string;
693
- value: ReactNode;
694
- copyable?: boolean;
695
- icon?: ComponentType<LucideProps>;
696
- }
697
- declare function InfoRow({
698
- label,
699
- value,
700
- copyable,
701
- icon: Icon
702
- }: InfoRowProps): react_jsx_runtime0.JSX.Element | null;
703
- //#endregion
704
711
  //#region src/components/item-helpers.d.ts
705
712
  /**
706
713
  * Item Component Helpers
@@ -764,111 +771,28 @@ declare namespace FeatureList {
764
771
  var displayName: string;
765
772
  }
766
773
  //#endregion
767
- //#region src/components/phone-input.d.ts
768
- interface PhoneCountry {
769
- code: string;
770
- name: string;
771
- dialCode: string;
772
- flag: string;
773
- }
774
- declare const DEFAULT_COUNTRIES: PhoneCountry[];
775
- interface PhoneInputProps extends Omit<react.InputHTMLAttributes<HTMLInputElement>, "onChange"> {
776
- onChange?: (value: string) => void;
777
- defaultCountry?: string;
778
- /** Custom list of countries to show. Defaults to a built-in list of ~50 countries. */
779
- countries?: PhoneCountry[];
780
- ref?: react.Ref<HTMLInputElement>;
781
- }
782
- declare function PhoneInput({
783
- className,
784
- onChange,
785
- value,
786
- defaultCountry,
787
- countries,
788
- disabled,
789
- placeholder,
790
- ref,
791
- ...props
792
- }: PhoneInputProps): react_jsx_runtime0.JSX.Element;
793
- //#endregion
794
- //#region src/components/pill.d.ts
795
- interface PillProps {
796
- variant?: "default" | "secondary" | "destructive" | "outline";
797
- themed?: boolean;
798
- className?: string;
799
- children?: ReactNode;
800
- }
801
- declare function Pill({
802
- variant,
803
- themed,
804
- className,
805
- ...props
806
- }: PillProps): react_jsx_runtime0.JSX.Element;
807
- interface PillAvatarProps {
808
- fallback?: string;
809
- className?: string;
810
- src?: string;
811
- alt?: string;
812
- }
813
- declare function PillAvatar({
814
- fallback,
815
- className,
816
- src,
817
- alt,
818
- ...props
819
- }: PillAvatarProps): react_jsx_runtime0.JSX.Element;
820
- interface PillButtonProps {
821
- className?: string;
822
- children?: ReactNode;
823
- onClick?: () => void;
824
- }
825
- declare function PillButton({
826
- className,
827
- ...props
828
- }: PillButtonProps): react_jsx_runtime0.JSX.Element;
829
- interface PillStatusProps {
830
- children?: ReactNode;
774
+ //#region src/components/printable-view.d.ts
775
+ interface PrintableViewProps {
776
+ /** Content to render inside the printable container */
777
+ children: React.ReactNode;
778
+ /** ID for the container (used by printDocument) */
779
+ id: string;
831
780
  className?: string;
832
781
  }
833
- declare function PillStatus({
782
+ declare function PrintableView({
834
783
  children,
835
- className,
836
- ...props
837
- }: PillStatusProps): react_jsx_runtime0.JSX.Element;
838
- interface PillIndicatorProps {
839
- variant?: "success" | "error" | "warning" | "info";
840
- pulse?: boolean;
841
- }
842
- declare function PillIndicator({
843
- variant,
844
- pulse
845
- }: PillIndicatorProps): react_jsx_runtime0.JSX.Element;
846
- interface PillDeltaProps {
847
- className?: string;
848
- delta?: number;
849
- }
850
- declare function PillDelta({
851
- className,
852
- delta
853
- }: PillDeltaProps): react_jsx_runtime0.JSX.Element;
854
- interface PillIconProps extends LucideProps {
855
- icon: ComponentType<LucideProps>;
856
- className?: string;
857
- }
858
- declare function PillIcon({
859
- icon: Icon,
860
- className,
861
- ...props
862
- }: PillIconProps): react_jsx_runtime0.JSX.Element;
863
- interface PillAvatarGroupProps {
864
- children?: ReactNode;
865
- className?: string;
784
+ id,
785
+ className
786
+ }: PrintableViewProps): react_jsx_runtime0.JSX.Element;
787
+ interface PrintDocumentOptions {
788
+ /** Document title for the print window */
789
+ title?: string;
790
+ /** Additional CSS to inject */
791
+ styles?: string;
792
+ /** Copy stylesheets from parent document. Default: true */
793
+ copyStyles?: boolean;
866
794
  }
867
- declare function PillAvatarGroup({
868
- children,
869
- className,
870
- ...props
871
- }: PillAvatarGroupProps): react_jsx_runtime0.JSX.Element;
795
+ declare function printDocument(elementId: string, options?: PrintDocumentOptions): void;
872
796
  //#endregion
873
797
  //#region src/components/responsive-split-layout.d.ts
874
798
  interface PanelConfig {
@@ -1132,33 +1056,68 @@ declare function StepContent({
1132
1056
  keepMounted
1133
1057
  }: StepContentProps): react_jsx_runtime0.JSX.Element | null;
1134
1058
  //#endregion
1059
+ //#region src/components/submit-footer.d.ts
1060
+ interface SubmitFooterProps {
1061
+ /** Called when Cancel is clicked */
1062
+ onCancel?: () => void;
1063
+ /** Called when Submit is clicked */
1064
+ onSubmit?: () => void;
1065
+ /** Loading state — disables both buttons, shows spinner on submit */
1066
+ isLoading?: boolean;
1067
+ /** Submit button label. Default: "Save" */
1068
+ submitLabel?: string;
1069
+ /** Cancel button label. Default: "Cancel" */
1070
+ cancelLabel?: string;
1071
+ /** Submit button variant. Default: "default" */
1072
+ submitVariant?: "default" | "destructive";
1073
+ /** Whether submit is type="submit" (for forms). Default: false */
1074
+ formSubmit?: boolean;
1075
+ /** Disable submit regardless of loading */
1076
+ disabled?: boolean;
1077
+ /** Optional content on the left side (e.g., a "Delete" button) */
1078
+ leftContent?: React.ReactNode;
1079
+ className?: string;
1080
+ }
1081
+ declare function SubmitFooter({
1082
+ onCancel,
1083
+ onSubmit,
1084
+ isLoading,
1085
+ submitLabel,
1086
+ cancelLabel,
1087
+ submitVariant,
1088
+ formSubmit,
1089
+ disabled,
1090
+ leftContent,
1091
+ className
1092
+ }: SubmitFooterProps): react_jsx_runtime0.JSX.Element;
1093
+ //#endregion
1135
1094
  //#region src/components/table-wrapper.d.ts
1136
- interface TableWrapperColumn {
1095
+ interface TableWrapperColumn<TData = Record<string, unknown>> {
1137
1096
  key?: string;
1138
1097
  header: ReactNode;
1139
1098
  className?: string;
1140
1099
  cellClassName?: string;
1141
- render?: (item: any, index: number) => ReactNode;
1100
+ render?: (item: TData, index: number) => ReactNode;
1142
1101
  }
1143
1102
  interface TableWrapperEmptyState {
1144
1103
  icon?: ReactNode;
1145
1104
  title?: string;
1146
1105
  description?: string;
1147
1106
  }
1148
- interface TableWrapperProps {
1107
+ interface TableWrapperProps<TData = Record<string, unknown>> {
1149
1108
  title?: ReactNode;
1150
1109
  description?: ReactNode;
1151
1110
  icon?: ReactNode;
1152
1111
  children?: ReactNode;
1153
- columns?: TableWrapperColumn[];
1154
- data?: any[];
1155
- renderRow?: (item: any, index: number) => ReactNode;
1112
+ columns?: TableWrapperColumn<TData>[];
1113
+ data?: TData[];
1114
+ renderRow?: (item: TData, index: number) => ReactNode;
1156
1115
  emptyState?: TableWrapperEmptyState;
1157
1116
  className?: string;
1158
1117
  tableClassName?: string;
1159
1118
  maxHeight?: string;
1160
1119
  }
1161
- declare function TableWrapper({
1120
+ declare function TableWrapper<TData = Record<string, unknown>>({
1162
1121
  title,
1163
1122
  description,
1164
1123
  icon,
@@ -1171,19 +1130,19 @@ declare function TableWrapper({
1171
1130
  tableClassName,
1172
1131
  maxHeight,
1173
1132
  ...props
1174
- }: TableWrapperProps): react_jsx_runtime0.JSX.Element;
1175
- interface SimpleTableProps extends Omit<TableWrapperProps, "renderRow" | "children"> {
1176
- columns: TableWrapperColumn[];
1177
- data: any[];
1133
+ }: TableWrapperProps<TData>): react_jsx_runtime0.JSX.Element;
1134
+ interface SimpleTableProps<TData = Record<string, unknown>> extends Omit<TableWrapperProps<TData>, "renderRow" | "children"> {
1135
+ columns: TableWrapperColumn<TData>[];
1136
+ data: TData[];
1178
1137
  }
1179
- declare function SimpleTable({
1138
+ declare function SimpleTable<TData = Record<string, unknown>>({
1180
1139
  title,
1181
1140
  data,
1182
1141
  columns,
1183
1142
  emptyState,
1184
1143
  className,
1185
1144
  ...props
1186
- }: SimpleTableProps): react_jsx_runtime0.JSX.Element;
1145
+ }: SimpleTableProps<TData>): react_jsx_runtime0.JSX.Element;
1187
1146
  //#endregion
1188
1147
  //#region src/components/tabs-wrapper.d.ts
1189
1148
  type TabPreset = "default" | "line";
@@ -1334,277 +1293,4 @@ declare function ActionTooltip({
1334
1293
  ...props
1335
1294
  }: ActionTooltipProps): react_jsx_runtime0.JSX.Element;
1336
1295
  //#endregion
1337
- //#region src/components/timeline.d.ts
1338
- type TimelineStatus = "default" | "success" | "error" | "warning" | "pending" | "active";
1339
- interface TimelineItem {
1340
- /** Title of the timeline entry */
1341
- title: string;
1342
- /** Description or content */
1343
- description?: react.ReactNode;
1344
- /** Timestamp / date string */
1345
- timestamp?: string;
1346
- /** Secondary label (e.g., user name) */
1347
- label?: string;
1348
- /** Status determines icon color and connector style */
1349
- status?: TimelineStatus;
1350
- /** Custom icon override */
1351
- icon?: LucideIcon | react.ReactNode;
1352
- /** Additional content below description */
1353
- content?: react.ReactNode;
1354
- }
1355
- interface TimelineProps {
1356
- items: TimelineItem[];
1357
- /** Layout direction */
1358
- orientation?: "vertical" | "horizontal";
1359
- /** Size variant */
1360
- size?: "sm" | "default" | "lg";
1361
- /** Show connector lines */
1362
- showConnectors?: boolean;
1363
- /** Reverse order (newest first) */
1364
- reverse?: boolean;
1365
- className?: string;
1366
- }
1367
- declare function Timeline({
1368
- items,
1369
- orientation,
1370
- size,
1371
- showConnectors,
1372
- reverse,
1373
- className
1374
- }: TimelineProps): react_jsx_runtime0.JSX.Element;
1375
- //#endregion
1376
- //#region src/components/detail-view.d.ts
1377
- interface DetailViewItemData {
1378
- label: string;
1379
- value?: react.ReactNode;
1380
- /** Custom render function (overrides value) */
1381
- render?: () => react.ReactNode;
1382
- /** Hide this item entirely */
1383
- hidden?: boolean;
1384
- /** Span full width (ignores columns) */
1385
- fullWidth?: boolean;
1386
- /** Additional className for the value cell */
1387
- className?: string;
1388
- }
1389
- interface DetailViewProps {
1390
- items?: DetailViewItemData[];
1391
- /** Grid columns */
1392
- columns?: 1 | 2 | 3;
1393
- /** Label placement */
1394
- layout?: "stacked" | "horizontal" | "inline";
1395
- /** Size variant */
1396
- size?: "sm" | "default" | "lg";
1397
- /** Show dividers between items */
1398
- dividers?: boolean;
1399
- /** Striped rows (stacked layout only) */
1400
- striped?: boolean;
1401
- /** Card wrapper */
1402
- bordered?: boolean;
1403
- /** Section title */
1404
- title?: string;
1405
- /** Section description */
1406
- description?: string;
1407
- className?: string;
1408
- children?: react.ReactNode;
1409
- }
1410
- declare function DetailView({
1411
- items,
1412
- columns,
1413
- layout,
1414
- size,
1415
- dividers,
1416
- striped,
1417
- bordered,
1418
- title,
1419
- description,
1420
- className,
1421
- children
1422
- }: DetailViewProps): react_jsx_runtime0.JSX.Element;
1423
- interface DetailItemProps {
1424
- label: string;
1425
- children?: react.ReactNode;
1426
- value?: react.ReactNode;
1427
- className?: string;
1428
- labelClassName?: string;
1429
- layout?: "stacked" | "horizontal" | "inline";
1430
- }
1431
- declare function DetailItem({
1432
- label,
1433
- children,
1434
- value,
1435
- className,
1436
- labelClassName,
1437
- layout
1438
- }: DetailItemProps): react_jsx_runtime0.JSX.Element;
1439
- //#endregion
1440
- //#region src/components/animated-wrapper.d.ts
1441
- /** Available entrance animation types */
1442
- type Animation = "fadeIn" | "fadeInUp" | "scaleIn" | "slideInLeft" | "slideInRight" | "slideInUp" | "slideInDown";
1443
- /** Slide direction for SlideIn component */
1444
- type SlideDirection = "left" | "right" | "up" | "down";
1445
- /** Options for the useInView hook */
1446
- interface UseInViewOptions {
1447
- /** IntersectionObserver rootMargin (default: "0px") */
1448
- margin?: string;
1449
- /** Trigger only once (default: true) */
1450
- once?: boolean;
1451
- /** Enable/disable observation (default: true) */
1452
- enabled?: boolean;
1453
- }
1454
- /** Shared base props for animation components */
1455
- interface AnimateBaseProps {
1456
- children?: ReactNode;
1457
- /** Delay in ms before animation starts */
1458
- delay?: number;
1459
- /** Animation duration in ms */
1460
- duration?: number;
1461
- /** Only animate when element scrolls into viewport */
1462
- inView?: boolean;
1463
- /** IntersectionObserver rootMargin for inView trigger */
1464
- inViewMargin?: string;
1465
- /** Fire animation only once (default: true) */
1466
- once?: boolean;
1467
- /** Disable animation entirely — renders children immediately */
1468
- disabled?: boolean;
1469
- className?: string;
1470
- /** HTML element to render as (default: "div") */
1471
- as?: ElementType;
1472
- }
1473
- interface SlideInProps extends AnimateBaseProps {
1474
- /** Direction to slide from */
1475
- direction?: SlideDirection;
1476
- }
1477
- interface StaggerChildrenProps {
1478
- children?: ReactNode;
1479
- /** Animation type for each child */
1480
- animation?: Animation;
1481
- /** Delay between each child in ms */
1482
- staggerDelay?: number;
1483
- /** Initial delay before first child animates */
1484
- initialDelay?: number;
1485
- /** Duration per child animation */
1486
- duration?: number;
1487
- inView?: boolean;
1488
- inViewMargin?: string;
1489
- once?: boolean;
1490
- disabled?: boolean;
1491
- className?: string;
1492
- /** Extra classes applied to each child wrapper div */
1493
- childClassName?: string;
1494
- as?: ElementType;
1495
- }
1496
- interface AnimatedTextProps {
1497
- /** The text string to animate */
1498
- text: string;
1499
- as?: ElementType;
1500
- animation?: Animation;
1501
- /** Split text by word or character */
1502
- splitBy?: "word" | "character";
1503
- /** Delay between each segment in ms */
1504
- staggerDelay?: number;
1505
- delay?: number;
1506
- duration?: number;
1507
- inView?: boolean;
1508
- inViewMargin?: string;
1509
- once?: boolean;
1510
- disabled?: boolean;
1511
- className?: string;
1512
- /** Extra classes on each animated text segment */
1513
- segmentClassName?: string;
1514
- }
1515
- interface AnimatedCounterProps {
1516
- /** Start value (default: 0) */
1517
- from?: number;
1518
- /** Target value to count to */
1519
- to: number;
1520
- /** Count-up duration in ms (default: 2000) */
1521
- duration?: number;
1522
- /** Delay before counting starts in ms */
1523
- delay?: number;
1524
- /** Intl.NumberFormat locale for number formatting (e.g. "en-US") */
1525
- locale?: string;
1526
- /** Text rendered before the number */
1527
- prefix?: string;
1528
- /** Text rendered after the number */
1529
- suffix?: string;
1530
- /** Decimal places (default: 0) */
1531
- decimals?: number;
1532
- /** Custom number formatter — overrides locale/decimals */
1533
- formatter?: (value: number) => string;
1534
- inView?: boolean;
1535
- inViewMargin?: string;
1536
- once?: boolean;
1537
- disabled?: boolean;
1538
- className?: string;
1539
- as?: ElementType;
1540
- }
1541
- /**
1542
- * useInView — observe when an element enters the viewport.
1543
- *
1544
- * @example
1545
- * ```tsx
1546
- * const ref = useRef<HTMLDivElement>(null);
1547
- * const isInView = useInView(ref, { once: true, margin: "-100px" });
1548
- * return <div ref={ref}>{isInView ? "Visible!" : "Hidden"}</div>;
1549
- * ```
1550
- */
1551
- declare function useInView(ref: RefObject<Element | null>, options?: UseInViewOptions): boolean;
1552
- /** Fade in with opacity transition */
1553
- declare function FadeIn(props: AnimateBaseProps): react_jsx_runtime0.JSX.Element;
1554
- /** Fade in with upward motion */
1555
- declare function FadeInUp(props: AnimateBaseProps): react_jsx_runtime0.JSX.Element;
1556
- /** Scale up into view */
1557
- declare function ScaleIn(props: AnimateBaseProps): react_jsx_runtime0.JSX.Element;
1558
- /** Slide in from a specified direction */
1559
- declare function SlideIn({
1560
- direction,
1561
- ...props
1562
- }: SlideInProps): react_jsx_runtime0.JSX.Element;
1563
- declare function StaggerChildren({
1564
- children,
1565
- animation,
1566
- staggerDelay,
1567
- initialDelay,
1568
- duration,
1569
- inView,
1570
- inViewMargin,
1571
- once,
1572
- disabled,
1573
- className,
1574
- childClassName,
1575
- as
1576
- }: StaggerChildrenProps): react.ReactElement<any, string | react.JSXElementConstructor<any>>;
1577
- declare function AnimatedText({
1578
- text,
1579
- as,
1580
- animation,
1581
- splitBy,
1582
- staggerDelay,
1583
- delay,
1584
- duration,
1585
- inView,
1586
- inViewMargin,
1587
- once,
1588
- disabled,
1589
- className,
1590
- segmentClassName
1591
- }: AnimatedTextProps): react.ReactElement<any, string | react.JSXElementConstructor<any>>;
1592
- declare function AnimatedCounter({
1593
- from,
1594
- to,
1595
- duration,
1596
- delay,
1597
- locale,
1598
- prefix,
1599
- suffix,
1600
- decimals,
1601
- formatter,
1602
- inView,
1603
- inViewMargin,
1604
- once,
1605
- disabled,
1606
- className,
1607
- as
1608
- }: AnimatedCounterProps): react.ReactElement<any, string | react.JSXElementConstructor<any>>;
1609
- //#endregion
1610
- export { AccordionSection, type AccordionSectionProps, ActionDropdown, type ActionDropdownItem, type ActionDropdownProps, ActionTooltip, type ActionTooltipProps, type AnimateBaseProps, AnimatedCounter, type AnimatedCounterProps, AnimatedText, type AnimatedTextProps, type Animation, ApiPagination, type ApiPaginationData, type ApiPaginationProps, ButtonTooltip, type ButtonTooltipProps, CardWrapper, type CardWrapperProps, CheckboxDropdown, type CheckboxDropdownProps, ClientSubmitButton, type ClientSubmitButtonProps, CollapsibleCard, type CollapsibleCardProps, CollapsibleSection, type CollapsibleSectionProps, CollapsibleWrapper, type CollapsibleWrapperProps, ConfirmDialog, type ConfirmDialogProps, ConfirmSheet, type ConfirmSheetProps, CopyButton, type CopyButtonProps, CopyCodeBlock, type CopyCodeBlockProps, CopyText, type CopyTextProps, CustomPagination, type CustomPaginationProps, DEFAULT_COUNTRIES, DataCard, type DataCardProps, DeleteConfirmDialog, type DeleteConfirmDialogProps, DetailItem, type DetailItemProps, DetailView, type DetailViewItemData, type DetailViewProps, DialogWrapper, type DialogWrapperProps, type DragHandleProps, DraggableCard, type DraggableCardProps, DropdownWrapper, type DropdownWrapperProps, type DynamicTabItem, DynamicTabs, type DynamicTabsProps, ErrorState, ErrorStateInline, type ErrorStateInlineProps, type ErrorStateProps, FadeIn, FadeInUp, FaqAccordion, type FaqAccordionProps, type FaqItem, FeatureItem, type FeatureItemProps, FeatureList, type FeatureListItem, type FeatureListProps, FormDialog, type FormDialogProps, FormSheet, type FormSheetProps, IconItemMedia, type IconItemMediaProps, IconTooltip, type IconTooltipProps, InfoAlert, type InfoAlertProps, InfoRow, type InfoRowProps, InfoTooltip, type InfoTooltipProps, LoadingCard, type LoadingCardProps, PaginationInfo, type PaginationInfoProps, type PhoneCountry, PhoneInput, type PhoneInputProps, Pill, PillAvatar, PillAvatarGroup, type PillAvatarGroupProps, type PillAvatarProps, PillButton, type PillButtonProps, PillDelta, type PillDeltaProps, PillIcon, type PillIconProps, PillIndicator, type PillIndicatorProps, type PillProps, PillStatus, type PillStatusProps, RadioDropdown, type RadioDropdownProps, ResponsiveSplitLayout, type ResponsiveSplitLayoutProps, ScaleIn, SelectDropdown, type SelectDropdownOption, type SelectDropdownProps, SheetWrapper, type SheetWrapperProps, SimpleTable, type SimpleTableProps, type SlideDirection, SlideIn, type SlideInProps, StaggerChildren, type StaggerChildrenProps, StatsCard, type StatsCardProps, StatusBanner, type StatusBannerProps, type StatusBannerVariant, StepContent, type StepContentProps, Stepper, type StepperProps, type StepperStep, TabContent, type TabContentProps, type TabPreset, TabTrigger, type TabTriggerProps, TableWrapper, type TableWrapperColumn, type TableWrapperEmptyState, type TableWrapperProps, TabsWrapper, type TabsWrapperProps, Thumbnail, type ThumbnailProps, Timeline, type TimelineItem, type TimelineProps, type TimelineStatus, TooltipWrapper, type TooltipWrapperProps, type UseInViewOptions, useInView };
1296
+ export { AccordionSection, type AccordionSectionProps, ActionDropdown, type ActionDropdownItem, type ActionDropdownProps, ActionTooltip, type ActionTooltipProps, type AnimateBaseProps, AnimatedCounter, type AnimatedCounterProps, AnimatedText, type AnimatedTextProps, type Animation, ApiPagination, type ApiPaginationData, type ApiPaginationProps, ButtonTooltip, type ButtonTooltipProps, CardWrapper, type CardWrapperProps, CheckboxDropdown, type CheckboxDropdownProps, ClientSubmitButton, type ClientSubmitButtonProps, CollapsibleCard, type CollapsibleCardProps, CollapsibleSection, type CollapsibleSectionProps, CollapsibleWrapper, type CollapsibleWrapperProps, ConfirmDialog, type ConfirmDialogProps, ConfirmSheet, type ConfirmSheetProps, CopyButton, type CopyButtonProps, CopyCodeBlock, type CopyCodeBlockProps, CopyText, type CopyTextProps, CustomPagination, type CustomPaginationProps, DEFAULT_COUNTRIES, DataCard, type DataCardProps, DeleteConfirmDialog, type DeleteConfirmDialogProps, DetailItem, type DetailItemProps, DetailView, type DetailViewItemData, type DetailViewProps, DialogWrapper, type DialogWrapperProps, type DragHandleProps, DraggableCard, type DraggableCardProps, DropdownWrapper, type DropdownWrapperProps, type DynamicTabItem, DynamicTabs, type DynamicTabsProps, ErrorState, ErrorStateInline, type ErrorStateInlineProps, type ErrorStateProps, FadeIn, FadeInUp, FaqAccordion, type FaqAccordionProps, type FaqItem, FeatureItem, type FeatureItemProps, FeatureList, type FeatureListItem, type FeatureListProps, FormDialog, type FormDialogProps, FormSheet, type FormSheetProps, IconItemMedia, type IconItemMediaProps, IconTooltip, type IconTooltipProps, InfoAlert, type InfoAlertProps, InfoRow, type InfoRowProps, InfoTooltip, type InfoTooltipProps, LoadingCard, type LoadingCardProps, PaginationInfo, type PaginationInfoProps, type PhoneCountry, PhoneInput, type PhoneInputProps, Pill, PillAvatar, PillAvatarGroup, type PillAvatarGroupProps, type PillAvatarProps, PillButton, type PillButtonProps, PillDelta, type PillDeltaProps, PillIcon, type PillIconProps, PillIndicator, type PillIndicatorProps, type PillProps, PillStatus, type PillStatusProps, type PrintDocumentOptions, PrintableView, type PrintableViewProps, RadioDropdown, type RadioDropdownProps, ResponsiveSplitLayout, type ResponsiveSplitLayoutProps, ScaleIn, SelectDropdown, type SelectDropdownOption, type SelectDropdownProps, SheetWrapper, type SheetWrapperProps, SimpleTable, type SimpleTableProps, type SlideDirection, SlideIn, type SlideInProps, StaggerChildren, type StaggerChildrenProps, StatsCard, type StatsCardProps, StatusBanner, type StatusBannerProps, type StatusBannerVariant, StepContent, type StepContentProps, Stepper, type StepperProps, type StepperStep, SubmitFooter, type SubmitFooterProps, TabContent, type TabContentProps, type TabPreset, TabTrigger, type TabTriggerProps, TableWrapper, type TableWrapperColumn, type TableWrapperEmptyState, type TableWrapperProps, TabsWrapper, type TabsWrapperProps, Thumbnail, type ThumbnailProps, Timeline, type TimelineItem, type TimelineProps, type TimelineStatus, TooltipWrapper, type TooltipWrapperProps, type UseInViewOptions, printDocument, useInView };