lucent-ui 0.29.0 → 0.31.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.cjs +102 -45
- package/dist/index.d.ts +143 -0
- package/dist/index.js +2578 -1885
- package/dist-cli/cli/entry.js +0 -0
- package/dist-cli/cli/index.js +0 -0
- package/dist-server/server/index.js +29 -29
- package/dist-server/server/pattern-registry.js +18 -0
- package/dist-server/server/registry.js +8 -0
- package/dist-server/src/components/molecules/Card/Card.manifest.js +2 -2
- package/dist-server/src/components/molecules/Collapsible/Collapsible.manifest.js +4 -4
- package/dist-server/src/components/molecules/FilterDateRange/FilterDateRange.manifest.js +46 -0
- package/dist-server/src/components/molecules/FilterMultiSelect/FilterMultiSelect.manifest.js +66 -0
- package/dist-server/src/components/molecules/FilterSearch/FilterSearch.manifest.js +37 -0
- package/dist-server/src/components/molecules/FilterSelect/FilterSelect.manifest.js +58 -0
- package/dist-server/src/components/molecules/Stepper/Stepper.manifest.js +115 -0
- package/dist-server/src/components/molecules/Timeline/Timeline.manifest.js +23 -9
- package/dist-server/src/manifest/{recipes/action-bar.recipe.js → patterns/action-bar.pattern.js} +1 -1
- package/dist-server/src/manifest/{recipes/collapsible-card.recipe.js → patterns/collapsible-card.pattern.js} +1 -1
- package/dist-server/src/manifest/patterns/dashboard-header.pattern.js +98 -0
- package/dist-server/src/manifest/{recipes/empty-state-card.recipe.js → patterns/empty-state-card.pattern.js} +1 -1
- package/dist-server/src/manifest/{recipes/form-layout.recipe.js → patterns/form-layout.pattern.js} +1 -1
- package/dist-server/src/manifest/patterns/index.js +12 -0
- package/dist-server/src/manifest/patterns/notification-feed.pattern.js +91 -0
- package/dist-server/src/manifest/patterns/onboarding-flow.pattern.js +107 -0
- package/dist-server/src/manifest/patterns/pricing-table.pattern.js +108 -0
- package/dist-server/src/manifest/{recipes/profile-card.recipe.js → patterns/profile-card.pattern.js} +1 -1
- package/dist-server/src/manifest/patterns/search-filter-bar.pattern.js +122 -0
- package/dist-server/src/manifest/{recipes/settings-panel.recipe.js → patterns/settings-panel.pattern.js} +1 -1
- package/dist-server/src/manifest/{recipes/stats-row.recipe.js → patterns/stats-row.pattern.js} +1 -1
- package/package.json +13 -15
- package/dist-server/server/recipe-registry.js +0 -18
- package/dist-server/src/manifest/recipes/index.js +0 -8
- package/dist-server/src/manifest/recipes/search-filter-bar.recipe.js +0 -197
- package/dist-server/src/manifest/validate.test.js +0 -28
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;
|
|
@@ -1595,6 +1702,40 @@ export declare interface StackProps {
|
|
|
1595
1702
|
'aria-labelledby'?: string;
|
|
1596
1703
|
}
|
|
1597
1704
|
|
|
1705
|
+
export declare interface StepDef {
|
|
1706
|
+
/** Step label */
|
|
1707
|
+
label: string;
|
|
1708
|
+
/** Optional description shown below the label */
|
|
1709
|
+
description?: string;
|
|
1710
|
+
/** Optional custom icon for the circle (overrides number/checkmark) */
|
|
1711
|
+
icon?: ReactNode;
|
|
1712
|
+
}
|
|
1713
|
+
|
|
1714
|
+
export declare function Stepper({ steps, current, size, orientation, numbered, showStatus, style, }: StepperProps): JSX_2.Element;
|
|
1715
|
+
|
|
1716
|
+
export declare const StepperManifest: ComponentManifest;
|
|
1717
|
+
|
|
1718
|
+
export declare type StepperOrientation = 'horizontal' | 'vertical';
|
|
1719
|
+
|
|
1720
|
+
export declare interface StepperProps {
|
|
1721
|
+
/** Step labels — strings or objects with label/description/icon */
|
|
1722
|
+
steps: readonly (string | StepDef)[];
|
|
1723
|
+
/** Zero-based index of the current step */
|
|
1724
|
+
current: number;
|
|
1725
|
+
/** Circle and connector sizing */
|
|
1726
|
+
size?: StepperSize;
|
|
1727
|
+
/** Layout direction */
|
|
1728
|
+
orientation?: StepperOrientation;
|
|
1729
|
+
/** Show "STEP N" prefix above labels */
|
|
1730
|
+
numbered?: boolean;
|
|
1731
|
+
/** Show Completed / In Progress / Pending status badges */
|
|
1732
|
+
showStatus?: boolean;
|
|
1733
|
+
/** Inline style overrides for the root container */
|
|
1734
|
+
style?: CSSProperties;
|
|
1735
|
+
}
|
|
1736
|
+
|
|
1737
|
+
export declare type StepperSize = 'sm' | 'md' | 'lg';
|
|
1738
|
+
|
|
1598
1739
|
/**
|
|
1599
1740
|
* Subtle — light mode uses wide, low-opacity diffused shadows.
|
|
1600
1741
|
* Dark mode shifts to "ambient" — an enormous, barely-visible
|
|
@@ -1770,6 +1911,8 @@ export declare interface TimelineItem {
|
|
|
1770
1911
|
id: string;
|
|
1771
1912
|
title: ReactNode;
|
|
1772
1913
|
description?: ReactNode;
|
|
1914
|
+
/** Rich nested content — comment cards, embedded blocks, etc. */
|
|
1915
|
+
content?: ReactNode;
|
|
1773
1916
|
date?: string;
|
|
1774
1917
|
status?: TimelineItemStatus;
|
|
1775
1918
|
icon?: ReactNode;
|