lucent-ui 0.29.0 → 0.30.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.
package/dist/index.d.ts CHANGED
@@ -559,6 +559,8 @@ export declare interface DataTableColumn<T> {
559
559
  sortable?: boolean;
560
560
  /** Adds a searchable, multi-select dropdown filter above the table for this column */
561
561
  filterable?: boolean;
562
+ /** Render a custom filter trigger in the column header (e.g. an icon that opens an external filter). */
563
+ headerFilter?: ReactNode;
562
564
  width?: string;
563
565
  align?: 'left' | 'center' | 'right';
564
566
  }
@@ -742,6 +744,111 @@ export declare interface FileUploadProps {
742
744
  style?: CSSProperties;
743
745
  }
744
746
 
747
+ export declare function FilterDateRange({ label, value, defaultValue, onChange, variant, size, min, max, disabled, style, }: FilterDateRangeProps): JSX_2.Element;
748
+
749
+ export declare interface FilterDateRangeProps {
750
+ /** Label shown on the trigger button when no range is selected. */
751
+ label?: string;
752
+ value?: DateRange;
753
+ defaultValue?: DateRange;
754
+ onChange?: (range: DateRange) => void;
755
+ /** Button style. "outline" switches to "secondary" when a range is selected. Default: "secondary". */
756
+ variant?: FilterDateRangeVariant;
757
+ size?: FilterDateRangeSize;
758
+ min?: Date;
759
+ max?: Date;
760
+ disabled?: boolean;
761
+ style?: CSSProperties;
762
+ }
763
+
764
+ export declare type FilterDateRangeSize = 'sm' | 'md' | 'lg';
765
+
766
+ export declare type FilterDateRangeVariant = 'secondary' | 'outline';
767
+
768
+ export declare function FilterMultiSelect({ label, options, value: controlledValue, defaultValue, onChange, variant, size, disabled, icon, style, }: FilterMultiSelectProps): JSX_2.Element;
769
+
770
+ export declare interface FilterMultiSelectOption {
771
+ value: string;
772
+ label: string;
773
+ /** Hex color — renders a Chip with swatch dot instead of plain text. */
774
+ swatch?: string;
775
+ disabled?: boolean;
776
+ }
777
+
778
+ export declare interface FilterMultiSelectProps {
779
+ /** Label shown on the trigger button. */
780
+ label: string;
781
+ options: FilterMultiSelectOption[];
782
+ /** Controlled selected values. */
783
+ value?: string[];
784
+ /** Initial values for uncontrolled usage. */
785
+ defaultValue?: string[];
786
+ onChange?: (values: string[]) => void;
787
+ /** Button style. "outline" switches to "secondary" when items are selected. Default: "secondary". */
788
+ variant?: FilterMultiSelectVariant;
789
+ size?: FilterMultiSelectSize;
790
+ disabled?: boolean;
791
+ /** Icon rendered before the label in the trigger button. */
792
+ icon?: ReactNode;
793
+ style?: CSSProperties;
794
+ }
795
+
796
+ export declare type FilterMultiSelectSize = 'xs' | 'sm' | 'md' | 'lg';
797
+
798
+ export declare type FilterMultiSelectVariant = 'secondary' | 'outline' | 'ghost';
799
+
800
+ export declare function FilterSearch({ value: controlledValue, defaultValue, onChange, placeholder, variant, size, width, disabled, style, }: FilterSearchProps): JSX_2.Element;
801
+
802
+ export declare interface FilterSearchProps {
803
+ /** Controlled search value. */
804
+ value?: string;
805
+ /** Initial value for uncontrolled usage. */
806
+ defaultValue?: string;
807
+ onChange?: (value: string) => void;
808
+ placeholder?: string;
809
+ /** Button style when collapsed. Default: "secondary". */
810
+ variant?: FilterSearchVariant;
811
+ size?: FilterSearchSize;
812
+ /** Width of the expanded input. Default: 260. */
813
+ width?: number;
814
+ disabled?: boolean;
815
+ style?: CSSProperties;
816
+ }
817
+
818
+ export declare type FilterSearchSize = 'sm' | 'md' | 'lg';
819
+
820
+ export declare type FilterSearchVariant = 'secondary' | 'outline';
821
+
822
+ export declare function FilterSelect({ label, options, value: controlledValue, defaultValue, onChange, variant, size, disabled, icon, style, }: FilterSelectProps): JSX_2.Element;
823
+
824
+ export declare interface FilterSelectOption {
825
+ value: string;
826
+ label: string;
827
+ disabled?: boolean;
828
+ }
829
+
830
+ export declare interface FilterSelectProps {
831
+ /** Label shown on the trigger button when no value is selected. */
832
+ label: string;
833
+ options: FilterSelectOption[];
834
+ /** Controlled selected value. */
835
+ value?: string;
836
+ /** Initial value for uncontrolled usage. */
837
+ defaultValue?: string;
838
+ onChange?: (value: string | undefined) => void;
839
+ /** Button style. "outline" switches to "secondary" when a value is selected. Default: "secondary". */
840
+ variant?: FilterSelectVariant;
841
+ size?: FilterSelectSize;
842
+ disabled?: boolean;
843
+ /** Icon rendered before the label in the trigger button. */
844
+ icon?: ReactNode;
845
+ style?: CSSProperties;
846
+ }
847
+
848
+ export declare type FilterSelectSize = 'sm' | 'md' | 'lg';
849
+
850
+ export declare type FilterSelectVariant = 'secondary' | 'outline';
851
+
745
852
  export declare const flatShadow: ShadowPreset;
746
853
 
747
854
  export declare function FormField({ label, htmlFor, required, helperText, errorMessage, children, style, }: FormFieldProps): JSX_2.Element;
@@ -1770,6 +1877,8 @@ export declare interface TimelineItem {
1770
1877
  id: string;
1771
1878
  title: ReactNode;
1772
1879
  description?: ReactNode;
1880
+ /** Rich nested content — comment cards, embedded blocks, etc. */
1881
+ content?: ReactNode;
1773
1882
  date?: string;
1774
1883
  status?: TimelineItemStatus;
1775
1884
  icon?: ReactNode;