@mlw-packages/react-components 1.3.6 → 1.3.10

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.css CHANGED
@@ -489,6 +489,9 @@ body {
489
489
  .z-50 {
490
490
  z-index: 50;
491
491
  }
492
+ .z-\[9999\] {
493
+ z-index: 9999;
494
+ }
492
495
  .col-span-1 {
493
496
  grid-column: span 1 / span 1;
494
497
  }
@@ -498,6 +501,9 @@ body {
498
501
  .col-span-3 {
499
502
  grid-column: span 3 / span 3;
500
503
  }
504
+ .m-0 {
505
+ margin: 0px;
506
+ }
501
507
  .-mx-1 {
502
508
  margin-left: -0.25rem;
503
509
  margin-right: -0.25rem;
@@ -723,9 +729,6 @@ body {
723
729
  .h-\[120px\] {
724
730
  height: 120px;
725
731
  }
726
- .h-\[16px\] {
727
- height: 16px;
728
- }
729
732
  .h-\[1px\] {
730
733
  height: 1px;
731
734
  }
@@ -1015,6 +1018,14 @@ body {
1015
1018
  .animate-pulse {
1016
1019
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
1017
1020
  }
1021
+ @keyframes spin {
1022
+ to {
1023
+ transform: rotate(360deg);
1024
+ }
1025
+ }
1026
+ .animate-spin {
1027
+ animation: spin 1s linear infinite;
1028
+ }
1018
1029
  .cursor-default {
1019
1030
  cursor: default;
1020
1031
  }
@@ -1292,6 +1303,9 @@ body {
1292
1303
  .border-l {
1293
1304
  border-left-width: 1px;
1294
1305
  }
1306
+ .border-l-8 {
1307
+ border-left-width: 8px;
1308
+ }
1295
1309
  .border-r {
1296
1310
  border-right-width: 1px;
1297
1311
  }
@@ -1659,6 +1673,10 @@ body {
1659
1673
  .tracking-widest {
1660
1674
  letter-spacing: 0.1em;
1661
1675
  }
1676
+ .text-blue-600 {
1677
+ --tw-text-opacity: 1;
1678
+ color: rgb(37 99 235 / var(--tw-text-opacity, 1));
1679
+ }
1662
1680
  .text-card-foreground {
1663
1681
  color: hsl(var(--card-foreground));
1664
1682
  }
@@ -1686,6 +1704,14 @@ body {
1686
1704
  --tw-text-opacity: 1;
1687
1705
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
1688
1706
  }
1707
+ .text-gray-900 {
1708
+ --tw-text-opacity: 1;
1709
+ color: rgb(17 24 39 / var(--tw-text-opacity, 1));
1710
+ }
1711
+ .text-green-600 {
1712
+ --tw-text-opacity: 1;
1713
+ color: rgb(22 163 74 / var(--tw-text-opacity, 1));
1714
+ }
1689
1715
  .text-muted-foreground {
1690
1716
  color: hsl(var(--muted-foreground));
1691
1717
  }
@@ -1710,6 +1736,10 @@ body {
1710
1736
  --tw-text-opacity: 1;
1711
1737
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
1712
1738
  }
1739
+ .text-red-600 {
1740
+ --tw-text-opacity: 1;
1741
+ color: rgb(220 38 38 / var(--tw-text-opacity, 1));
1742
+ }
1713
1743
  .text-secondary-foreground {
1714
1744
  color: hsl(var(--secondary-foreground));
1715
1745
  }
@@ -1729,6 +1759,10 @@ body {
1729
1759
  --tw-text-opacity: 1;
1730
1760
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1731
1761
  }
1762
+ .text-yellow-600 {
1763
+ --tw-text-opacity: 1;
1764
+ color: rgb(202 138 4 / var(--tw-text-opacity, 1));
1765
+ }
1732
1766
  .text-zinc-100 {
1733
1767
  --tw-text-opacity: 1;
1734
1768
  color: rgb(244 244 245 / var(--tw-text-opacity, 1));
@@ -2278,6 +2312,11 @@ body {
2278
2312
  --tw-scale-y: 1.05;
2279
2313
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2280
2314
  }
2315
+ .hover\:scale-110:hover {
2316
+ --tw-scale-x: 1.1;
2317
+ --tw-scale-y: 1.1;
2318
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
2319
+ }
2281
2320
  .hover\:scale-125:hover {
2282
2321
  --tw-scale-x: 1.25;
2283
2322
  --tw-scale-y: 1.25;
@@ -2297,9 +2336,15 @@ body {
2297
2336
  .hover\:bg-muted\/50:hover {
2298
2337
  background-color: hsl(var(--muted) / 0.5);
2299
2338
  }
2339
+ .hover\:bg-muted\/80:hover {
2340
+ background-color: hsl(var(--muted) / 0.8);
2341
+ }
2300
2342
  .hover\:bg-primary:hover {
2301
2343
  background-color: hsl(var(--primary));
2302
2344
  }
2345
+ .hover\:bg-primary\/80:hover {
2346
+ background-color: hsl(var(--primary) / 0.8);
2347
+ }
2303
2348
  .hover\:bg-slate-900:hover {
2304
2349
  --tw-bg-opacity: 1;
2305
2350
  background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
@@ -2315,6 +2360,10 @@ body {
2315
2360
  .hover\:text-accent-foreground:hover {
2316
2361
  color: hsl(var(--accent-foreground));
2317
2362
  }
2363
+ .hover\:text-red-500:hover {
2364
+ --tw-text-opacity: 1;
2365
+ color: rgb(239 68 68 / var(--tw-text-opacity, 1));
2366
+ }
2318
2367
  .hover\:text-slate-50:hover {
2319
2368
  --tw-text-opacity: 1;
2320
2369
  color: rgb(248 250 252 / var(--tw-text-opacity, 1));
@@ -2462,35 +2511,9 @@ body {
2462
2511
  .group\/menu-item:hover .group-hover\/menu-item\:opacity-100 {
2463
2512
  opacity: 1;
2464
2513
  }
2465
- .group.toaster .group-\[\.toaster\]\:border-border {
2466
- border-color: hsl(var(--border));
2467
- }
2468
- .group.toast .group-\[\.toast\]\:bg-muted {
2469
- background-color: hsl(var(--muted));
2470
- }
2471
- .group.toast .group-\[\.toast\]\:bg-primary {
2472
- background-color: hsl(var(--primary));
2473
- }
2474
- .group.toaster .group-\[\.toaster\]\:bg-background {
2475
- background-color: hsl(var(--background));
2476
- }
2477
2514
  .group.toast .group-\[\.toast\]\:text-muted-foreground {
2478
2515
  color: hsl(var(--muted-foreground));
2479
2516
  }
2480
- .group.toast .group-\[\.toast\]\:text-primary-foreground {
2481
- color: hsl(var(--primary-foreground));
2482
- }
2483
- .group.toaster .group-\[\.toaster\]\:text-foreground {
2484
- color: hsl(var(--foreground));
2485
- }
2486
- .group.toaster .group-\[\.toaster\]\:shadow-lg {
2487
- --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
2488
- --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
2489
- box-shadow:
2490
- var(--tw-ring-offset-shadow, 0 0 #0000),
2491
- var(--tw-ring-shadow, 0 0 #0000),
2492
- var(--tw-shadow);
2493
- }
2494
2517
  .peer:focus ~ .peer-focus\:shadow-lg {
2495
2518
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
2496
2519
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
@@ -2632,6 +2655,22 @@ body {
2632
2655
  .data-\[active\=true\]\:border-ring[data-active=true] {
2633
2656
  border-color: hsl(var(--ring));
2634
2657
  }
2658
+ .data-\[type\=error\]\:border-l-red-500[data-type=error] {
2659
+ --tw-border-opacity: 1;
2660
+ border-left-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
2661
+ }
2662
+ .data-\[type\=info\]\:border-l-blue-500[data-type=info] {
2663
+ --tw-border-opacity: 1;
2664
+ border-left-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
2665
+ }
2666
+ .data-\[type\=success\]\:border-l-green-500[data-type=success] {
2667
+ --tw-border-opacity: 1;
2668
+ border-left-color: rgb(34 197 94 / var(--tw-border-opacity, 1));
2669
+ }
2670
+ .data-\[type\=warning\]\:border-l-yellow-500[data-type=warning] {
2671
+ --tw-border-opacity: 1;
2672
+ border-left-color: rgb(234 179 8 / var(--tw-border-opacity, 1));
2673
+ }
2635
2674
  .data-\[selected\=true\]\:bg-primary[data-selected=true] {
2636
2675
  background-color: hsl(var(--primary));
2637
2676
  }
@@ -2654,6 +2693,22 @@ body {
2654
2693
  .data-\[state\=unchecked\]\:bg-input[data-state=unchecked] {
2655
2694
  background-color: hsl(var(--input));
2656
2695
  }
2696
+ .data-\[type\=error\]\:bg-red-50[data-type=error] {
2697
+ --tw-bg-opacity: 1;
2698
+ background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
2699
+ }
2700
+ .data-\[type\=info\]\:bg-blue-50[data-type=info] {
2701
+ --tw-bg-opacity: 1;
2702
+ background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
2703
+ }
2704
+ .data-\[type\=success\]\:bg-green-50[data-type=success] {
2705
+ --tw-bg-opacity: 1;
2706
+ background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
2707
+ }
2708
+ .data-\[type\=warning\]\:bg-yellow-50[data-type=warning] {
2709
+ --tw-bg-opacity: 1;
2710
+ background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));
2711
+ }
2657
2712
  .data-\[active\=true\]\:font-medium[data-active=true] {
2658
2713
  font-weight: 500;
2659
2714
  }
@@ -2917,6 +2972,10 @@ body {
2917
2972
  --tw-bg-opacity: 1;
2918
2973
  background-color: hsl(231 15% 19% / var(--tw-bg-opacity, 1));
2919
2974
  }
2975
+ .dark\:bg-gray-900:is(.dark *) {
2976
+ --tw-bg-opacity: 1;
2977
+ background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
2978
+ }
2920
2979
  .dark\:bg-input\/30:is(.dark *) {
2921
2980
  background-color: hsl(var(--input) / 0.3);
2922
2981
  }
@@ -2947,14 +3006,30 @@ body {
2947
3006
  --tw-text-opacity: 1;
2948
3007
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
2949
3008
  }
3009
+ .dark\:text-blue-400:is(.dark *) {
3010
+ --tw-text-opacity: 1;
3011
+ color: rgb(96 165 250 / var(--tw-text-opacity, 1));
3012
+ }
3013
+ .dark\:text-gray-100:is(.dark *) {
3014
+ --tw-text-opacity: 1;
3015
+ color: rgb(243 244 246 / var(--tw-text-opacity, 1));
3016
+ }
2950
3017
  .dark\:text-gray-300:is(.dark *) {
2951
3018
  --tw-text-opacity: 1;
2952
3019
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
2953
3020
  }
3021
+ .dark\:text-green-400:is(.dark *) {
3022
+ --tw-text-opacity: 1;
3023
+ color: rgb(74 222 128 / var(--tw-text-opacity, 1));
3024
+ }
2954
3025
  .dark\:text-neutral-300:is(.dark *) {
2955
3026
  --tw-text-opacity: 1;
2956
3027
  color: rgb(212 212 212 / var(--tw-text-opacity, 1));
2957
3028
  }
3029
+ .dark\:text-red-400:is(.dark *) {
3030
+ --tw-text-opacity: 1;
3031
+ color: rgb(248 113 113 / var(--tw-text-opacity, 1));
3032
+ }
2958
3033
  .dark\:text-slate-400:is(.dark *) {
2959
3034
  --tw-text-opacity: 1;
2960
3035
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
@@ -2971,6 +3046,14 @@ body {
2971
3046
  --tw-text-opacity: 1;
2972
3047
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
2973
3048
  }
3049
+ .dark\:text-yellow-400:is(.dark *) {
3050
+ --tw-text-opacity: 1;
3051
+ color: rgb(250 204 21 / var(--tw-text-opacity, 1));
3052
+ }
3053
+ .dark\:text-zinc-400:is(.dark *) {
3054
+ --tw-text-opacity: 1;
3055
+ color: rgb(161 161 170 / var(--tw-text-opacity, 1));
3056
+ }
2974
3057
  .dark\:hover\:bg-slate-50:hover:is(.dark *) {
2975
3058
  --tw-bg-opacity: 1;
2976
3059
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
@@ -2987,6 +3070,9 @@ body {
2987
3070
  --tw-text-opacity: 1;
2988
3071
  color: rgb(15 23 42 / var(--tw-text-opacity, 1));
2989
3072
  }
3073
+ .group.toast .dark\:group-\[\.toast\]\:text-muted-foreground\/80:is(.dark *) {
3074
+ color: hsl(var(--muted-foreground) / 0.8);
3075
+ }
2990
3076
  .dark\:aria-selected\:bg-primary[aria-selected=true]:is(.dark *) {
2991
3077
  background-color: hsl(var(--primary));
2992
3078
  }
@@ -3008,6 +3094,34 @@ body {
3008
3094
  --tw-text-opacity: 1;
3009
3095
  color: rgb(248 250 252 / var(--tw-text-opacity, 1));
3010
3096
  }
3097
+ .dark\:data-\[type\=error\]\:bg-red-900\/30[data-type=error]:is(.dark *) {
3098
+ background-color: rgb(127 29 29 / 0.3);
3099
+ }
3100
+ .dark\:data-\[type\=info\]\:bg-blue-900\/30[data-type=info]:is(.dark *) {
3101
+ background-color: rgb(30 58 138 / 0.3);
3102
+ }
3103
+ .dark\:data-\[type\=success\]\:bg-green-900\/30[data-type=success]:is(.dark *) {
3104
+ background-color: rgb(20 83 45 / 0.3);
3105
+ }
3106
+ .dark\:data-\[type\=warning\]\:bg-yellow-900\/30[data-type=warning]:is(.dark *) {
3107
+ background-color: rgb(113 63 18 / 0.3);
3108
+ }
3109
+ .dark\:data-\[type\=error\]\:text-red-400[data-type=error]:is(.dark *) {
3110
+ --tw-text-opacity: 1;
3111
+ color: rgb(248 113 113 / var(--tw-text-opacity, 1));
3112
+ }
3113
+ .dark\:data-\[type\=info\]\:text-blue-400[data-type=info]:is(.dark *) {
3114
+ --tw-text-opacity: 1;
3115
+ color: rgb(96 165 250 / var(--tw-text-opacity, 1));
3116
+ }
3117
+ .dark\:data-\[type\=success\]\:text-green-400[data-type=success]:is(.dark *) {
3118
+ --tw-text-opacity: 1;
3119
+ color: rgb(74 222 128 / var(--tw-text-opacity, 1));
3120
+ }
3121
+ .dark\:data-\[type\=warning\]\:text-yellow-400[data-type=warning]:is(.dark *) {
3122
+ --tw-text-opacity: 1;
3123
+ color: rgb(250 204 21 / var(--tw-text-opacity, 1));
3124
+ }
3011
3125
  @media (min-width: 640px) {
3012
3126
  .sm\:mt-0 {
3013
3127
  margin-top: 0px;
package/dist/index.d.mts CHANGED
@@ -375,6 +375,13 @@ declare const SlideBase: React$1.ForwardRefExoticComponent<SliderBaseProps & Rea
375
375
 
376
376
  type ToasterProps = React.ComponentProps<typeof Toaster$1>;
377
377
  declare const Toaster: ({ ...props }: ToasterProps) => react_jsx_runtime.JSX.Element;
378
+ declare const toast: {
379
+ success: (message: string) => string | number;
380
+ error: (message: string) => string | number;
381
+ warning: (message: string) => string | number;
382
+ info: (message: string) => string | number;
383
+ loading: (message: string) => string | number;
384
+ };
378
385
 
379
386
  declare const SwitchBase: React$1.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
380
387
 
@@ -456,15 +463,17 @@ interface ComboboxProps<T extends string> {
456
463
  placeholder?: string;
457
464
  searchPlaceholder?: string;
458
465
  label?: string;
466
+ labelClassname?: string;
459
467
  }
460
- declare function Combobox<T extends string>({ items, selected, onChange, placeholder, searchPlaceholder, label, }: ComboboxProps<T>): react_jsx_runtime.JSX.Element;
468
+ declare function Combobox<T extends string>({ items, selected, onChange, placeholder, searchPlaceholder, label, labelClassname }: ComboboxProps<T>): react_jsx_runtime.JSX.Element;
461
469
 
462
470
  interface MultiComboboxProps<T extends string> extends Omit<ComboboxProps<T>, "selected" | "onChange"> {
463
471
  label?: string;
464
472
  selected: T[];
465
473
  onChange: (value: T[]) => void;
474
+ labelClassname?: string;
466
475
  }
467
- declare function MultiCombobox<T extends string>({ items, selected, onChange, placeholder, searchPlaceholder, label, }: MultiComboboxProps<T>): react_jsx_runtime.JSX.Element;
476
+ declare function MultiCombobox<T extends string>({ items, selected, onChange, placeholder, searchPlaceholder, label, labelClassname }: MultiComboboxProps<T>): react_jsx_runtime.JSX.Element;
468
477
 
469
478
  interface SelectItem$1<T extends string> {
470
479
  label: string;
@@ -542,4 +551,4 @@ declare const defaultStringConditions: AvailableFilterConditions[];
542
551
 
543
552
  declare function buildFilterSummary<T extends Record<string, unknown>>(filter: Filter<T>, availableFilters: AvailableFilter<T>[]): string | null;
544
553
 
545
- export { AlertDialogActionBase, AlertDialogBase, AlertDialogCancelBase, AlertDialogContentBase, AlertDialogDescriptionBase, AlertDialogFooterBase, AlertDialogHeaderBase, AlertDialogOverlayBase, AlertDialogPortalBase, AlertDialogTitleBase, AlertDialogTriggerBase, AvatarBase, AvatarFallbackBase, AvatarImageBase, ButtonBase, ButtonGroupBase, type ButtonProps, CalendarBase, type CalendarProps, CardBase, CardContentBase, CardDescriptionBase, CardFooterBase, CardHeaderBase, CardTitleBase, CheckboxBase, Combobox, type ComboboxProps, CommandBase, CommandDialogBase, CommandEmptyBase, CommandGroupBase, CommandInputBase, CommandItemBase, CommandListBase, CommandSeparatorBase, CommandShortcutBase, DateTimePicker, DialogBase, DialogCloseBase, DialogContentBase, DialogDescriptionBase, DialogFooterBase, DialogHeaderBase, DialogOverlayBase, DialogPortalBase, DialogTitleBase, DialogTriggerBase, DropDownMenuBase, DropDownMenuCheckboxItemBase, DropDownMenuContentBase, DropDownMenuGroupBase, DropDownMenuItemBase, DropDownMenuLabelBase, DropDownMenuPortalBase, DropDownMenuRadioGroupBase, DropDownMenuRadioItemBase, DropDownMenuSeparatorBase, DropDownMenuShortcutBase, DropDownMenuSubBase, DropDownMenuSubContentBase, DropDownMenuSubTriggerBase, DropDownMenuTriggerBase, FormBase, FormControlBase, FormDescriptionBase, FormFieldBase, FormItemBase, FormLabelBase, FormMessageBase, InputBase, type InputBaseProps, LabelBase, type LabelBaseProps, ModeToggleBase, MultiCombobox, PopoverAnchorBase, PopoverBase, PopoverContentBase, PopoverTriggerBase, ProgressBase, type ProgressBaseProps, ProgressCirclesBase, type ProgressCirclesBaseProps, ProgressPanelsBase, type ProgressPanelsBaseProps, ProgressSegmentsBase, type ProgressSegmentsBaseProps, ScrollAreaBase, ScrollBarBase, Select, SelectBase, SelectContentBase, SelectGroupBase, type SelectItem$1 as SelectItem, SelectItemBase, SelectLabelBase, SelectScrollDownButtonBase, SelectScrollUpButtonBase, SelectSeparatorBase, SelectTriggerBase, SelectValueBase, SeparatorBase, SheetBase, SheetCloseBase, SheetContentBase, SheetDescriptionBase, SheetFooterBase, SheetHeaderBase, SheetOverlayBase, SheetPortalBase, SheetTitleBase, SheetTriggerBase, SidebarBase, SidebarContentBase, SidebarFooterBase, SidebarGroupActionBase, SidebarGroupBase, SidebarGroupContentBase, SidebarGroupLabelBase, SidebarHeaderBase, SidebarInputBase, SidebarInsetBase, SidebarMenuActionBase, SidebarMenuBadgeBase, SidebarMenuBase, SidebarMenuButtonBase, SidebarMenuItemBase, SidebarMenuSkeletonBase, SidebarMenuSubBase, SidebarMenuSubButtonBase, SidebarMenuSubItemBase, SidebarProviderBase, SidebarRailBase, SidebarSeparatorBase, SidebarTriggerBase, SkeletonBase, SlideBase, type SliderBaseProps, SwitchBase, TableBase, TableBodyBase, TableCaptionBase, TableCellBase, TableFooterBase, TableHeadBase, TableHeaderBase, TableRowBase, TabsBase, TabsContentBase, TabsListBase, TabsTriggerBase, TextAreaBase, type Theme, ThemeProviderBase, TimePicker, TimePickerInput, type TimePickerInputProps, Toaster, TooltipBase, TooltipContentBase, TooltipProviderBase, TooltipTriggerBase, UseSideBarBase, applyfilter, buildFilterSummary, buttonVariantsBase, defaultStringConditions, useFormFieldBase, useIsMobile, useTheme };
554
+ export { AlertDialogActionBase, AlertDialogBase, AlertDialogCancelBase, AlertDialogContentBase, AlertDialogDescriptionBase, AlertDialogFooterBase, AlertDialogHeaderBase, AlertDialogOverlayBase, AlertDialogPortalBase, AlertDialogTitleBase, AlertDialogTriggerBase, AvatarBase, AvatarFallbackBase, AvatarImageBase, ButtonBase, ButtonGroupBase, type ButtonProps, CalendarBase, type CalendarProps, CardBase, CardContentBase, CardDescriptionBase, CardFooterBase, CardHeaderBase, CardTitleBase, CheckboxBase, Combobox, type ComboboxProps, CommandBase, CommandDialogBase, CommandEmptyBase, CommandGroupBase, CommandInputBase, CommandItemBase, CommandListBase, CommandSeparatorBase, CommandShortcutBase, DateTimePicker, DialogBase, DialogCloseBase, DialogContentBase, DialogDescriptionBase, DialogFooterBase, DialogHeaderBase, DialogOverlayBase, DialogPortalBase, DialogTitleBase, DialogTriggerBase, DropDownMenuBase, DropDownMenuCheckboxItemBase, DropDownMenuContentBase, DropDownMenuGroupBase, DropDownMenuItemBase, DropDownMenuLabelBase, DropDownMenuPortalBase, DropDownMenuRadioGroupBase, DropDownMenuRadioItemBase, DropDownMenuSeparatorBase, DropDownMenuShortcutBase, DropDownMenuSubBase, DropDownMenuSubContentBase, DropDownMenuSubTriggerBase, DropDownMenuTriggerBase, FormBase, FormControlBase, FormDescriptionBase, FormFieldBase, FormItemBase, FormLabelBase, FormMessageBase, InputBase, type InputBaseProps, LabelBase, type LabelBaseProps, ModeToggleBase, MultiCombobox, PopoverAnchorBase, PopoverBase, PopoverContentBase, PopoverTriggerBase, ProgressBase, type ProgressBaseProps, ProgressCirclesBase, type ProgressCirclesBaseProps, ProgressPanelsBase, type ProgressPanelsBaseProps, ProgressSegmentsBase, type ProgressSegmentsBaseProps, ScrollAreaBase, ScrollBarBase, Select, SelectBase, SelectContentBase, SelectGroupBase, type SelectItem$1 as SelectItem, SelectItemBase, SelectLabelBase, SelectScrollDownButtonBase, SelectScrollUpButtonBase, SelectSeparatorBase, SelectTriggerBase, SelectValueBase, SeparatorBase, SheetBase, SheetCloseBase, SheetContentBase, SheetDescriptionBase, SheetFooterBase, SheetHeaderBase, SheetOverlayBase, SheetPortalBase, SheetTitleBase, SheetTriggerBase, SidebarBase, SidebarContentBase, SidebarFooterBase, SidebarGroupActionBase, SidebarGroupBase, SidebarGroupContentBase, SidebarGroupLabelBase, SidebarHeaderBase, SidebarInputBase, SidebarInsetBase, SidebarMenuActionBase, SidebarMenuBadgeBase, SidebarMenuBase, SidebarMenuButtonBase, SidebarMenuItemBase, SidebarMenuSkeletonBase, SidebarMenuSubBase, SidebarMenuSubButtonBase, SidebarMenuSubItemBase, SidebarProviderBase, SidebarRailBase, SidebarSeparatorBase, SidebarTriggerBase, SkeletonBase, SlideBase, type SliderBaseProps, SwitchBase, TableBase, TableBodyBase, TableCaptionBase, TableCellBase, TableFooterBase, TableHeadBase, TableHeaderBase, TableRowBase, TabsBase, TabsContentBase, TabsListBase, TabsTriggerBase, TextAreaBase, type Theme, ThemeProviderBase, TimePicker, TimePickerInput, type TimePickerInputProps, Toaster, TooltipBase, TooltipContentBase, TooltipProviderBase, TooltipTriggerBase, UseSideBarBase, applyfilter, buildFilterSummary, buttonVariantsBase, defaultStringConditions, toast, useFormFieldBase, useIsMobile, useTheme };
package/dist/index.d.ts CHANGED
@@ -375,6 +375,13 @@ declare const SlideBase: React$1.ForwardRefExoticComponent<SliderBaseProps & Rea
375
375
 
376
376
  type ToasterProps = React.ComponentProps<typeof Toaster$1>;
377
377
  declare const Toaster: ({ ...props }: ToasterProps) => react_jsx_runtime.JSX.Element;
378
+ declare const toast: {
379
+ success: (message: string) => string | number;
380
+ error: (message: string) => string | number;
381
+ warning: (message: string) => string | number;
382
+ info: (message: string) => string | number;
383
+ loading: (message: string) => string | number;
384
+ };
378
385
 
379
386
  declare const SwitchBase: React$1.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
380
387
 
@@ -456,15 +463,17 @@ interface ComboboxProps<T extends string> {
456
463
  placeholder?: string;
457
464
  searchPlaceholder?: string;
458
465
  label?: string;
466
+ labelClassname?: string;
459
467
  }
460
- declare function Combobox<T extends string>({ items, selected, onChange, placeholder, searchPlaceholder, label, }: ComboboxProps<T>): react_jsx_runtime.JSX.Element;
468
+ declare function Combobox<T extends string>({ items, selected, onChange, placeholder, searchPlaceholder, label, labelClassname }: ComboboxProps<T>): react_jsx_runtime.JSX.Element;
461
469
 
462
470
  interface MultiComboboxProps<T extends string> extends Omit<ComboboxProps<T>, "selected" | "onChange"> {
463
471
  label?: string;
464
472
  selected: T[];
465
473
  onChange: (value: T[]) => void;
474
+ labelClassname?: string;
466
475
  }
467
- declare function MultiCombobox<T extends string>({ items, selected, onChange, placeholder, searchPlaceholder, label, }: MultiComboboxProps<T>): react_jsx_runtime.JSX.Element;
476
+ declare function MultiCombobox<T extends string>({ items, selected, onChange, placeholder, searchPlaceholder, label, labelClassname }: MultiComboboxProps<T>): react_jsx_runtime.JSX.Element;
468
477
 
469
478
  interface SelectItem$1<T extends string> {
470
479
  label: string;
@@ -542,4 +551,4 @@ declare const defaultStringConditions: AvailableFilterConditions[];
542
551
 
543
552
  declare function buildFilterSummary<T extends Record<string, unknown>>(filter: Filter<T>, availableFilters: AvailableFilter<T>[]): string | null;
544
553
 
545
- export { AlertDialogActionBase, AlertDialogBase, AlertDialogCancelBase, AlertDialogContentBase, AlertDialogDescriptionBase, AlertDialogFooterBase, AlertDialogHeaderBase, AlertDialogOverlayBase, AlertDialogPortalBase, AlertDialogTitleBase, AlertDialogTriggerBase, AvatarBase, AvatarFallbackBase, AvatarImageBase, ButtonBase, ButtonGroupBase, type ButtonProps, CalendarBase, type CalendarProps, CardBase, CardContentBase, CardDescriptionBase, CardFooterBase, CardHeaderBase, CardTitleBase, CheckboxBase, Combobox, type ComboboxProps, CommandBase, CommandDialogBase, CommandEmptyBase, CommandGroupBase, CommandInputBase, CommandItemBase, CommandListBase, CommandSeparatorBase, CommandShortcutBase, DateTimePicker, DialogBase, DialogCloseBase, DialogContentBase, DialogDescriptionBase, DialogFooterBase, DialogHeaderBase, DialogOverlayBase, DialogPortalBase, DialogTitleBase, DialogTriggerBase, DropDownMenuBase, DropDownMenuCheckboxItemBase, DropDownMenuContentBase, DropDownMenuGroupBase, DropDownMenuItemBase, DropDownMenuLabelBase, DropDownMenuPortalBase, DropDownMenuRadioGroupBase, DropDownMenuRadioItemBase, DropDownMenuSeparatorBase, DropDownMenuShortcutBase, DropDownMenuSubBase, DropDownMenuSubContentBase, DropDownMenuSubTriggerBase, DropDownMenuTriggerBase, FormBase, FormControlBase, FormDescriptionBase, FormFieldBase, FormItemBase, FormLabelBase, FormMessageBase, InputBase, type InputBaseProps, LabelBase, type LabelBaseProps, ModeToggleBase, MultiCombobox, PopoverAnchorBase, PopoverBase, PopoverContentBase, PopoverTriggerBase, ProgressBase, type ProgressBaseProps, ProgressCirclesBase, type ProgressCirclesBaseProps, ProgressPanelsBase, type ProgressPanelsBaseProps, ProgressSegmentsBase, type ProgressSegmentsBaseProps, ScrollAreaBase, ScrollBarBase, Select, SelectBase, SelectContentBase, SelectGroupBase, type SelectItem$1 as SelectItem, SelectItemBase, SelectLabelBase, SelectScrollDownButtonBase, SelectScrollUpButtonBase, SelectSeparatorBase, SelectTriggerBase, SelectValueBase, SeparatorBase, SheetBase, SheetCloseBase, SheetContentBase, SheetDescriptionBase, SheetFooterBase, SheetHeaderBase, SheetOverlayBase, SheetPortalBase, SheetTitleBase, SheetTriggerBase, SidebarBase, SidebarContentBase, SidebarFooterBase, SidebarGroupActionBase, SidebarGroupBase, SidebarGroupContentBase, SidebarGroupLabelBase, SidebarHeaderBase, SidebarInputBase, SidebarInsetBase, SidebarMenuActionBase, SidebarMenuBadgeBase, SidebarMenuBase, SidebarMenuButtonBase, SidebarMenuItemBase, SidebarMenuSkeletonBase, SidebarMenuSubBase, SidebarMenuSubButtonBase, SidebarMenuSubItemBase, SidebarProviderBase, SidebarRailBase, SidebarSeparatorBase, SidebarTriggerBase, SkeletonBase, SlideBase, type SliderBaseProps, SwitchBase, TableBase, TableBodyBase, TableCaptionBase, TableCellBase, TableFooterBase, TableHeadBase, TableHeaderBase, TableRowBase, TabsBase, TabsContentBase, TabsListBase, TabsTriggerBase, TextAreaBase, type Theme, ThemeProviderBase, TimePicker, TimePickerInput, type TimePickerInputProps, Toaster, TooltipBase, TooltipContentBase, TooltipProviderBase, TooltipTriggerBase, UseSideBarBase, applyfilter, buildFilterSummary, buttonVariantsBase, defaultStringConditions, useFormFieldBase, useIsMobile, useTheme };
554
+ export { AlertDialogActionBase, AlertDialogBase, AlertDialogCancelBase, AlertDialogContentBase, AlertDialogDescriptionBase, AlertDialogFooterBase, AlertDialogHeaderBase, AlertDialogOverlayBase, AlertDialogPortalBase, AlertDialogTitleBase, AlertDialogTriggerBase, AvatarBase, AvatarFallbackBase, AvatarImageBase, ButtonBase, ButtonGroupBase, type ButtonProps, CalendarBase, type CalendarProps, CardBase, CardContentBase, CardDescriptionBase, CardFooterBase, CardHeaderBase, CardTitleBase, CheckboxBase, Combobox, type ComboboxProps, CommandBase, CommandDialogBase, CommandEmptyBase, CommandGroupBase, CommandInputBase, CommandItemBase, CommandListBase, CommandSeparatorBase, CommandShortcutBase, DateTimePicker, DialogBase, DialogCloseBase, DialogContentBase, DialogDescriptionBase, DialogFooterBase, DialogHeaderBase, DialogOverlayBase, DialogPortalBase, DialogTitleBase, DialogTriggerBase, DropDownMenuBase, DropDownMenuCheckboxItemBase, DropDownMenuContentBase, DropDownMenuGroupBase, DropDownMenuItemBase, DropDownMenuLabelBase, DropDownMenuPortalBase, DropDownMenuRadioGroupBase, DropDownMenuRadioItemBase, DropDownMenuSeparatorBase, DropDownMenuShortcutBase, DropDownMenuSubBase, DropDownMenuSubContentBase, DropDownMenuSubTriggerBase, DropDownMenuTriggerBase, FormBase, FormControlBase, FormDescriptionBase, FormFieldBase, FormItemBase, FormLabelBase, FormMessageBase, InputBase, type InputBaseProps, LabelBase, type LabelBaseProps, ModeToggleBase, MultiCombobox, PopoverAnchorBase, PopoverBase, PopoverContentBase, PopoverTriggerBase, ProgressBase, type ProgressBaseProps, ProgressCirclesBase, type ProgressCirclesBaseProps, ProgressPanelsBase, type ProgressPanelsBaseProps, ProgressSegmentsBase, type ProgressSegmentsBaseProps, ScrollAreaBase, ScrollBarBase, Select, SelectBase, SelectContentBase, SelectGroupBase, type SelectItem$1 as SelectItem, SelectItemBase, SelectLabelBase, SelectScrollDownButtonBase, SelectScrollUpButtonBase, SelectSeparatorBase, SelectTriggerBase, SelectValueBase, SeparatorBase, SheetBase, SheetCloseBase, SheetContentBase, SheetDescriptionBase, SheetFooterBase, SheetHeaderBase, SheetOverlayBase, SheetPortalBase, SheetTitleBase, SheetTriggerBase, SidebarBase, SidebarContentBase, SidebarFooterBase, SidebarGroupActionBase, SidebarGroupBase, SidebarGroupContentBase, SidebarGroupLabelBase, SidebarHeaderBase, SidebarInputBase, SidebarInsetBase, SidebarMenuActionBase, SidebarMenuBadgeBase, SidebarMenuBase, SidebarMenuButtonBase, SidebarMenuItemBase, SidebarMenuSkeletonBase, SidebarMenuSubBase, SidebarMenuSubButtonBase, SidebarMenuSubItemBase, SidebarProviderBase, SidebarRailBase, SidebarSeparatorBase, SidebarTriggerBase, SkeletonBase, SlideBase, type SliderBaseProps, SwitchBase, TableBase, TableBodyBase, TableCaptionBase, TableCellBase, TableFooterBase, TableHeadBase, TableHeaderBase, TableRowBase, TabsBase, TabsContentBase, TabsListBase, TabsTriggerBase, TextAreaBase, type Theme, ThemeProviderBase, TimePicker, TimePickerInput, type TimePickerInputProps, Toaster, TooltipBase, TooltipContentBase, TooltipProviderBase, TooltipTriggerBase, UseSideBarBase, applyfilter, buildFilterSummary, buttonVariantsBase, defaultStringConditions, toast, useFormFieldBase, useIsMobile, useTheme };
package/dist/index.js CHANGED
@@ -186,6 +186,7 @@ __export(index_exports, {
186
186
  buildFilterSummary: () => buildFilterSummary,
187
187
  buttonVariantsBase: () => buttonVariantsBase,
188
188
  defaultStringConditions: () => defaultStringConditions,
189
+ toast: () => toast,
189
190
  useFormFieldBase: () => useFormFieldBase,
190
191
  useIsMobile: () => useIsMobile,
191
192
  useTheme: () => useTheme
@@ -264,7 +265,7 @@ var ButtonGroupBase = React.forwardRef(
264
265
  className: cn(
265
266
  "inline-flex",
266
267
  orientation === "vertical" ? "flex-col" : "flex-row",
267
- "rounded-md overflow-hidden shadow-sm isolate",
268
+ "rounded-md overflow-hidden isolate",
268
269
  className
269
270
  ),
270
271
  ...props,
@@ -631,8 +632,7 @@ var InputBase = React6.forwardRef(
631
632
  {
632
633
  className: cn(
633
634
  "flex items-center rounded-md transition focus-within:ring-1 focus-within:ring-ring focus-within:border-ring bg-white dark:bg-[hsl(231,15%,19%)] overflow-hidden",
634
- type !== "number" && type !== "file" && "border border-input",
635
- (type === "file" || type === "number") && "border-none"
635
+ type !== "number" && type !== "file" && "border border-input"
636
636
  ),
637
637
  children: [
638
638
  leftIcon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex items-center justify-center px-2", children: leftIcon }),
@@ -1047,6 +1047,7 @@ var import_phosphor_react6 = require("phosphor-react");
1047
1047
  var React10 = __toESM(require("react"));
1048
1048
  var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
1049
1049
  var import_phosphor_react5 = require("phosphor-react");
1050
+ var import_framer_motion = require("framer-motion");
1050
1051
  var import_jsx_runtime11 = require("react/jsx-runtime");
1051
1052
  var DropDownMenuBase = DropdownMenuPrimitive.Root;
1052
1053
  var DropDownMenuTriggerBase = DropdownMenuPrimitive.Trigger;
@@ -1076,24 +1077,34 @@ var DropDownMenuSubContentBase = React10.forwardRef(({ className, ...props }, re
1076
1077
  {
1077
1078
  ref,
1078
1079
  className: cn(
1079
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
1080
+ " min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
1080
1081
  className
1081
1082
  ),
1082
1083
  ...props
1083
1084
  }
1084
1085
  ));
1085
- DropDownMenuSubContentBase.displayName = DropdownMenuPrimitive.SubContent.displayName;
1086
1086
  var DropDownMenuContentBase = React10.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1087
1087
  DropdownMenuPrimitive.Content,
1088
1088
  {
1089
1089
  sideOffset,
1090
- className: cn(
1091
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
1092
- className
1093
- ),
1090
+ forceMount: true,
1094
1091
  ref,
1092
+ className: cn("z-[9999] p-0", className),
1095
1093
  ...props,
1096
- children: props.children
1094
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_framer_motion.AnimatePresence, { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1095
+ import_framer_motion.motion.div,
1096
+ {
1097
+ initial: { opacity: 0, scale: 0.95, y: 5 },
1098
+ animate: { opacity: 1, scale: 1, y: 0 },
1099
+ exit: { opacity: 0, scale: 0.95, y: 5 },
1100
+ transition: { duration: 0.2, ease: "easeOut" },
1101
+ className: cn(
1102
+ "min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
1103
+ className
1104
+ ),
1105
+ children: props.children
1106
+ }
1107
+ ) })
1097
1108
  }
1098
1109
  ) }));
1099
1110
  DropDownMenuContentBase.displayName = DropdownMenuPrimitive.Content.displayName;
@@ -1292,7 +1303,7 @@ var import_react5 = require("react");
1292
1303
  var React11 = __toESM(require("react"));
1293
1304
  var import_cmdk = require("cmdk");
1294
1305
  var import_phosphor_react7 = require("phosphor-react");
1295
- var import_framer_motion = require("framer-motion");
1306
+ var import_framer_motion2 = require("framer-motion");
1296
1307
  var import_jsx_runtime14 = require("react/jsx-runtime");
1297
1308
  var CommandBase = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1298
1309
  import_cmdk.Command,
@@ -1312,8 +1323,8 @@ var dialogVariants = {
1312
1323
  exit: { opacity: 0, scale: 0.95, y: -20 }
1313
1324
  };
1314
1325
  var CommandDialogBase = ({ children, open, ...props }) => {
1315
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DialogBase, { open, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_framer_motion.AnimatePresence, { children: open && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DialogContentBase, { asChild: true, forceMount: true, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1316
- import_framer_motion.motion.div,
1326
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DialogBase, { open, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_framer_motion2.AnimatePresence, { children: open && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DialogContentBase, { asChild: true, forceMount: true, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1327
+ import_framer_motion2.motion.div,
1317
1328
  {
1318
1329
  initial: "hidden",
1319
1330
  animate: "visible",
@@ -1418,20 +1429,30 @@ function ComboboxBase({
1418
1429
  errorMessage
1419
1430
  }) {
1420
1431
  const [open, setOpen] = (0, import_react4.useState)(false);
1421
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "col-span-1 w-full ", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(PopoverBase, { open, onOpenChange: setOpen, modal: true, children: [
1422
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(PopoverTriggerBase, { asChild: true, className: "flex w-full justify-between dark:bg-[hsl(231,15%,19%)]", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1423
- ButtonBase,
1432
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "col-span-1 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(PopoverBase, { open, onOpenChange: setOpen, modal: true, children: [
1433
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1434
+ PopoverTriggerBase,
1424
1435
  {
1425
- variant: "outline",
1426
- role: "combobox",
1427
- "aria-expanded": open,
1428
- children: [
1429
- renderSelected,
1430
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_phosphor_react8.CaretDown, { size: 16 }) }),
1431
- errorMessage && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-red-500", children: errorMessage })
1432
- ]
1436
+ asChild: true,
1437
+ className: "flex w-full justify-between dark:bg-[hsl(231,15%,19%)]",
1438
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1439
+ ButtonBase,
1440
+ {
1441
+ variant: "outline",
1442
+ role: "combobox",
1443
+ "aria-expanded": open,
1444
+ className: cn(
1445
+ "flex-wrap items-start gap-2 justify-between h-full",
1446
+ errorMessage && "border-red-500"
1447
+ ),
1448
+ children: [
1449
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex flex-wrap gap-2 flex-1", children: renderSelected }),
1450
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_phosphor_react8.CaretDown, { size: 16, className: "mt-1" })
1451
+ ]
1452
+ }
1453
+ )
1433
1454
  }
1434
- ) }),
1455
+ ),
1435
1456
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(PopoverContentBase, { className: "max-h-[--radix-popover-content-available-height] w-[--radix-popover-trigger-width] p-0 border-none", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(CommandBase, { className: "dark:text-white", children: [
1436
1457
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1437
1458
  CommandInputBase,
@@ -1479,7 +1500,8 @@ function Combobox({
1479
1500
  onChange,
1480
1501
  placeholder,
1481
1502
  searchPlaceholder,
1482
- label
1503
+ label,
1504
+ labelClassname
1483
1505
  }) {
1484
1506
  const selectedItem = items.find((item) => item.value === selected);
1485
1507
  const renderSelected = (0, import_react5.useMemo)(
@@ -1497,7 +1519,7 @@ function Combobox({
1497
1519
  [selected, onChange]
1498
1520
  );
1499
1521
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-1 w-full min-w-[150px]", children: [
1500
- label && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(LabelBase_default, { children: label }),
1522
+ label && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(LabelBase_default, { className: labelClassname, children: label }),
1501
1523
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1502
1524
  ComboboxBase,
1503
1525
  {
@@ -1521,7 +1543,8 @@ function MultiCombobox({
1521
1543
  onChange,
1522
1544
  placeholder,
1523
1545
  searchPlaceholder,
1524
- label
1546
+ label,
1547
+ labelClassname
1525
1548
  }) {
1526
1549
  const selectedItems = items.filter((item) => selected.includes(item.value));
1527
1550
  const checkIsSelected = (0, import_react6.useCallback)(
@@ -1549,14 +1572,22 @@ function MultiCombobox({
1549
1572
  children: [
1550
1573
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "truncate whitespace-break-spaces text-xs", children: item.label }),
1551
1574
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1552
- import_phosphor_react9.X,
1575
+ "span",
1553
1576
  {
1554
- size: 14,
1577
+ role: "button",
1578
+ tabIndex: 0,
1555
1579
  onClick: (e) => {
1556
1580
  e.stopPropagation();
1557
1581
  handleSelection(item.value);
1558
1582
  },
1559
- className: "cursor-pointer"
1583
+ onKeyDown: (e) => {
1584
+ if (e.key === "Enter" || e.key === " ") {
1585
+ e.preventDefault();
1586
+ handleSelection(item.value);
1587
+ }
1588
+ },
1589
+ className: "cursor-pointer p-0 m-0 text-xs flex items-center justify-center hover:text-red-500 hover:scale-110 transition-all",
1590
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_phosphor_react9.X, { size: 14 })
1560
1591
  }
1561
1592
  )
1562
1593
  ]
@@ -1566,7 +1597,7 @@ function MultiCombobox({
1566
1597
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex flex-wrap gap-2", children: items2 });
1567
1598
  }, [handleSelection, placeholder, selectedItems]);
1568
1599
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "flex flex-col gap-1 w-full min-w-[150px]", children: [
1569
- label && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(LabelBase_default, { children: label }),
1600
+ label && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(LabelBase_default, { className: labelClassname, children: label }),
1570
1601
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1571
1602
  ComboboxBase,
1572
1603
  {
@@ -1584,7 +1615,7 @@ function MultiCombobox({
1584
1615
  var React13 = __toESM(require("react"));
1585
1616
  var SelectPrimitive = __toESM(require("@radix-ui/react-select"));
1586
1617
  var import_phosphor_react10 = require("phosphor-react");
1587
- var import_framer_motion2 = require("framer-motion");
1618
+ var import_framer_motion3 = require("framer-motion");
1588
1619
  var import_jsx_runtime19 = require("react/jsx-runtime");
1589
1620
  var SelectBase = SelectPrimitive.Root;
1590
1621
  var SelectGroupBase = SelectPrimitive.Group;
@@ -1601,7 +1632,7 @@ var SelectTriggerBase = React13.forwardRef(({ className, children, open, ...prop
1601
1632
  children: [
1602
1633
  children,
1603
1634
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1604
- import_framer_motion2.motion.span,
1635
+ import_framer_motion3.motion.span,
1605
1636
  {
1606
1637
  animate: { rotate: open ? 180 : 0 },
1607
1638
  transition: { duration: 0.3 },
@@ -1639,7 +1670,7 @@ var SelectScrollDownButtonBase = React13.forwardRef(({ className, ...props }, re
1639
1670
  }
1640
1671
  ));
1641
1672
  SelectScrollDownButtonBase.displayName = SelectPrimitive.ScrollDownButton.displayName;
1642
- var SelectContentBase = React13.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_framer_motion2.AnimatePresence, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1673
+ var SelectContentBase = React13.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_framer_motion3.AnimatePresence, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1643
1674
  SelectPrimitive.Content,
1644
1675
  {
1645
1676
  ref,
@@ -1651,7 +1682,7 @@ var SelectContentBase = React13.forwardRef(({ className, children, position = "p
1651
1682
  ...props,
1652
1683
  asChild: true,
1653
1684
  children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1654
- import_framer_motion2.motion.div,
1685
+ import_framer_motion3.motion.div,
1655
1686
  {
1656
1687
  initial: { opacity: 0, scale: 0.95 },
1657
1688
  animate: { opacity: 1, scale: 1 },
@@ -1889,7 +1920,7 @@ CardFooterBase.displayName = "CardFooter";
1889
1920
  var React16 = __toESM(require("react"));
1890
1921
  var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
1891
1922
  var import_phosphor_react12 = require("phosphor-react");
1892
- var import_framer_motion3 = require("framer-motion");
1923
+ var import_framer_motion4 = require("framer-motion");
1893
1924
  var import_jsx_runtime24 = require("react/jsx-runtime");
1894
1925
  var CheckboxBase = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1895
1926
  CheckboxPrimitive.Root,
@@ -1901,7 +1932,7 @@ var CheckboxBase = React16.forwardRef(({ className, ...props }, ref) => /* @__PU
1901
1932
  ),
1902
1933
  ...props,
1903
1934
  children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(CheckboxPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1904
- import_framer_motion3.motion.div,
1935
+ import_framer_motion4.motion.div,
1905
1936
  {
1906
1937
  initial: { scale: 0, opacity: 0, rotate: -90 },
1907
1938
  animate: { scale: 1, opacity: 1, rotate: 0 },
@@ -2162,7 +2193,7 @@ var ProgressCirclesBase = ({
2162
2193
  // src/components/ui/SeparatorBase.tsx
2163
2194
  var React19 = __toESM(require("react"));
2164
2195
  var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"));
2165
- var import_framer_motion4 = require("framer-motion");
2196
+ var import_framer_motion5 = require("framer-motion");
2166
2197
  var import_jsx_runtime27 = require("react/jsx-runtime");
2167
2198
  var SeparatorBase = React19.forwardRef(
2168
2199
  ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => {
@@ -2176,7 +2207,7 @@ var SeparatorBase = React19.forwardRef(
2176
2207
  asChild: true,
2177
2208
  ...props,
2178
2209
  children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2179
- import_framer_motion4.motion.div,
2210
+ import_framer_motion5.motion.div,
2180
2211
  {
2181
2212
  className: cn(
2182
2213
  "shrink-0 bg-border",
@@ -2993,28 +3024,103 @@ var SlideBase = React23.forwardRef(
2993
3024
  SlideBase.displayName = "SlideBase";
2994
3025
 
2995
3026
  // src/components/ui/SonnerBase.tsx
2996
- var import_next_themes = require("next-themes");
3027
+ var import_phosphor_react15 = require("phosphor-react");
2997
3028
  var import_sonner = require("sonner");
2998
3029
  var import_jsx_runtime33 = require("react/jsx-runtime");
3030
+ var iconBaseClass = "w-7 h-auto";
2999
3031
  var Toaster = ({ ...props }) => {
3000
- const { theme = "system" } = (0, import_next_themes.useTheme)();
3001
3032
  return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3002
3033
  import_sonner.Toaster,
3003
3034
  {
3004
- theme,
3005
3035
  className: "toaster group",
3036
+ position: "top-center",
3006
3037
  toastOptions: {
3007
3038
  classNames: {
3008
- toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
3009
- description: "group-[.toast]:text-muted-foreground",
3010
- actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
3011
- cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
3039
+ toast: `
3040
+ group toast
3041
+ bg-white dark:bg-gray-900
3042
+ text-gray-900 dark:text-gray-100
3043
+ shadow-lg rounded-md
3044
+ border-l-8
3045
+ border-border
3046
+ flex items-center gap-3
3047
+ data-[type=success]:border-l-green-500 data-[type=success]:bg-green-50 dark:data-[type=success]:bg-green-900/30 dark:data-[type=success]:text-green-400
3048
+ data-[type=error]:border-l-red-500 data-[type=error]:bg-red-50 dark:data-[type=error]:bg-red-900/30 dark:data-[type=error]:text-red-400
3049
+ data-[type=warning]:border-l-yellow-500 data-[type=warning]:bg-yellow-50 dark:data-[type=warning]:bg-yellow-900/30 dark:data-[type=warning]:text-yellow-400
3050
+ data-[type=info]:border-l-blue-500 data-[type=info]:bg-blue-50 dark:data-[type=info]:bg-blue-900/30 dark:data-[type=info]:text-blue-400
3051
+ `,
3052
+ description: `
3053
+ text-sm
3054
+ group-[.toast]:text-muted-foreground
3055
+ dark:group-[.toast]:text-muted-foreground/80
3056
+ `,
3057
+ actionButton: `
3058
+ ml-auto
3059
+ rounded-md px-3 py-1 text-sm font-semibold
3060
+ bg-primary text-primary-foreground
3061
+ hover:bg-primary/80
3062
+ transition-colors duration-200
3063
+ `,
3064
+ cancelButton: `
3065
+ ml-2
3066
+ rounded-md px-3 py-1 text-sm font-semibold
3067
+ bg-muted text-muted-foreground
3068
+ hover:bg-muted/80
3069
+ transition-colors duration-200
3070
+ `
3012
3071
  }
3013
3072
  },
3014
3073
  ...props
3015
3074
  }
3016
3075
  );
3017
3076
  };
3077
+ var toast = {
3078
+ success: (message) => import_sonner.toast.success(message, {
3079
+ icon: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3080
+ import_phosphor_react15.CheckCircle,
3081
+ {
3082
+ className: `${iconBaseClass} text-green-600 dark:text-green-400`,
3083
+ weight: "fill"
3084
+ }
3085
+ )
3086
+ }),
3087
+ error: (message) => import_sonner.toast.error(message, {
3088
+ icon: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3089
+ import_phosphor_react15.XCircle,
3090
+ {
3091
+ className: `${iconBaseClass} text-red-600 dark:text-red-400`,
3092
+ weight: "fill"
3093
+ }
3094
+ )
3095
+ }),
3096
+ warning: (message) => import_sonner.toast.warning(message, {
3097
+ icon: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3098
+ import_phosphor_react15.Warning,
3099
+ {
3100
+ className: `${iconBaseClass} text-yellow-600 dark:text-yellow-400`,
3101
+ weight: "fill"
3102
+ }
3103
+ )
3104
+ }),
3105
+ info: (message) => import_sonner.toast.info(message, {
3106
+ icon: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3107
+ import_phosphor_react15.Info,
3108
+ {
3109
+ className: `${iconBaseClass} text-blue-600 dark:text-blue-400`,
3110
+ weight: "fill"
3111
+ }
3112
+ )
3113
+ }),
3114
+ loading: (message) => (0, import_sonner.toast)(message, {
3115
+ icon: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3116
+ import_phosphor_react15.Spinner,
3117
+ {
3118
+ className: `${iconBaseClass} animate-spin text-zinc-500 dark:text-zinc-400`,
3119
+ weight: "fill"
3120
+ }
3121
+ )
3122
+ })
3123
+ };
3018
3124
 
3019
3125
  // src/components/ui/SwitchBase.tsx
3020
3126
  var React24 = __toESM(require("react"));
@@ -3027,7 +3133,7 @@ var SwitchBase = React24.forwardRef(({ className, ...props }, ref) => {
3027
3133
  ...props,
3028
3134
  ref,
3029
3135
  className: cn(
3030
- "peer relative inline-flex h-[16px] w-12 cursor-pointer items-center rounded-full border-2 border-transparent shadow-md transition-colors duration-300 ease-in-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input data-[state=checked]:shadow-[0_0_15px_4px_var(--tw-shadow-color)] data-[state=checked]:shadow-primary/30",
3136
+ "peer relative inline-flex w-12 cursor-pointer items-center rounded-full border-2 border-transparent shadow-md transition-colors duration-300 ease-in-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input data-[state=checked]:shadow-[0_0_15px_4px_var(--tw-shadow-color)] data-[state=checked]:shadow-primary/30",
3031
3137
  className
3032
3138
  ),
3033
3139
  children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
@@ -3472,6 +3578,7 @@ function buildFilterSummary(filter, availableFilters) {
3472
3578
  buildFilterSummary,
3473
3579
  buttonVariantsBase,
3474
3580
  defaultStringConditions,
3581
+ toast,
3475
3582
  useFormFieldBase,
3476
3583
  useIsMobile,
3477
3584
  useTheme
package/dist/index.mjs CHANGED
@@ -72,7 +72,7 @@ var ButtonGroupBase = React.forwardRef(
72
72
  className: cn(
73
73
  "inline-flex",
74
74
  orientation === "vertical" ? "flex-col" : "flex-row",
75
- "rounded-md overflow-hidden shadow-sm isolate",
75
+ "rounded-md overflow-hidden isolate",
76
76
  className
77
77
  ),
78
78
  ...props,
@@ -439,8 +439,7 @@ var InputBase = React6.forwardRef(
439
439
  {
440
440
  className: cn(
441
441
  "flex items-center rounded-md transition focus-within:ring-1 focus-within:ring-ring focus-within:border-ring bg-white dark:bg-[hsl(231,15%,19%)] overflow-hidden",
442
- type !== "number" && type !== "file" && "border border-input",
443
- (type === "file" || type === "number") && "border-none"
442
+ type !== "number" && type !== "file" && "border border-input"
444
443
  ),
445
444
  children: [
446
445
  leftIcon && /* @__PURE__ */ jsx7("div", { className: "flex items-center justify-center px-2", children: leftIcon }),
@@ -855,6 +854,7 @@ import { Check as Check2, Moon, Sun } from "phosphor-react";
855
854
  import * as React10 from "react";
856
855
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
857
856
  import { Check, CaretRight as CaretRight2, Circle } from "phosphor-react";
857
+ import { motion, AnimatePresence } from "framer-motion";
858
858
  import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
859
859
  var DropDownMenuBase = DropdownMenuPrimitive.Root;
860
860
  var DropDownMenuTriggerBase = DropdownMenuPrimitive.Trigger;
@@ -884,24 +884,34 @@ var DropDownMenuSubContentBase = React10.forwardRef(({ className, ...props }, re
884
884
  {
885
885
  ref,
886
886
  className: cn(
887
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
887
+ " min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
888
888
  className
889
889
  ),
890
890
  ...props
891
891
  }
892
892
  ));
893
- DropDownMenuSubContentBase.displayName = DropdownMenuPrimitive.SubContent.displayName;
894
893
  var DropDownMenuContentBase = React10.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx11(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx11(
895
894
  DropdownMenuPrimitive.Content,
896
895
  {
897
896
  sideOffset,
898
- className: cn(
899
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
900
- className
901
- ),
897
+ forceMount: true,
902
898
  ref,
899
+ className: cn("z-[9999] p-0", className),
903
900
  ...props,
904
- children: props.children
901
+ children: /* @__PURE__ */ jsx11(AnimatePresence, { children: /* @__PURE__ */ jsx11(
902
+ motion.div,
903
+ {
904
+ initial: { opacity: 0, scale: 0.95, y: 5 },
905
+ animate: { opacity: 1, scale: 1, y: 0 },
906
+ exit: { opacity: 0, scale: 0.95, y: 5 },
907
+ transition: { duration: 0.2, ease: "easeOut" },
908
+ className: cn(
909
+ "min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
910
+ className
911
+ ),
912
+ children: props.children
913
+ }
914
+ ) })
905
915
  }
906
916
  ) }));
907
917
  DropDownMenuContentBase.displayName = DropdownMenuPrimitive.Content.displayName;
@@ -1100,7 +1110,7 @@ import { useCallback, useMemo } from "react";
1100
1110
  import * as React11 from "react";
1101
1111
  import { Command as CommandPrimitive } from "cmdk";
1102
1112
  import { MagnifyingGlass } from "phosphor-react";
1103
- import { motion, AnimatePresence } from "framer-motion";
1113
+ import { motion as motion2, AnimatePresence as AnimatePresence2 } from "framer-motion";
1104
1114
  import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
1105
1115
  var CommandBase = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
1106
1116
  CommandPrimitive,
@@ -1120,8 +1130,8 @@ var dialogVariants = {
1120
1130
  exit: { opacity: 0, scale: 0.95, y: -20 }
1121
1131
  };
1122
1132
  var CommandDialogBase = ({ children, open, ...props }) => {
1123
- return /* @__PURE__ */ jsx14(DialogBase, { open, ...props, children: /* @__PURE__ */ jsx14(AnimatePresence, { children: open && /* @__PURE__ */ jsx14(DialogContentBase, { asChild: true, forceMount: true, children: /* @__PURE__ */ jsx14(
1124
- motion.div,
1133
+ return /* @__PURE__ */ jsx14(DialogBase, { open, ...props, children: /* @__PURE__ */ jsx14(AnimatePresence2, { children: open && /* @__PURE__ */ jsx14(DialogContentBase, { asChild: true, forceMount: true, children: /* @__PURE__ */ jsx14(
1134
+ motion2.div,
1125
1135
  {
1126
1136
  initial: "hidden",
1127
1137
  animate: "visible",
@@ -1226,20 +1236,30 @@ function ComboboxBase({
1226
1236
  errorMessage
1227
1237
  }) {
1228
1238
  const [open, setOpen] = useState4(false);
1229
- return /* @__PURE__ */ jsx16("div", { className: "col-span-1 w-full ", children: /* @__PURE__ */ jsxs9(PopoverBase, { open, onOpenChange: setOpen, modal: true, children: [
1230
- /* @__PURE__ */ jsx16(PopoverTriggerBase, { asChild: true, className: "flex w-full justify-between dark:bg-[hsl(231,15%,19%)]", children: /* @__PURE__ */ jsxs9(
1231
- ButtonBase,
1239
+ return /* @__PURE__ */ jsx16("div", { className: "col-span-1 w-full", children: /* @__PURE__ */ jsxs9(PopoverBase, { open, onOpenChange: setOpen, modal: true, children: [
1240
+ /* @__PURE__ */ jsx16(
1241
+ PopoverTriggerBase,
1232
1242
  {
1233
- variant: "outline",
1234
- role: "combobox",
1235
- "aria-expanded": open,
1236
- children: [
1237
- renderSelected,
1238
- /* @__PURE__ */ jsx16("span", { children: /* @__PURE__ */ jsx16(CaretDown, { size: 16 }) }),
1239
- errorMessage && /* @__PURE__ */ jsx16("span", { className: "text-red-500", children: errorMessage })
1240
- ]
1243
+ asChild: true,
1244
+ className: "flex w-full justify-between dark:bg-[hsl(231,15%,19%)]",
1245
+ children: /* @__PURE__ */ jsxs9(
1246
+ ButtonBase,
1247
+ {
1248
+ variant: "outline",
1249
+ role: "combobox",
1250
+ "aria-expanded": open,
1251
+ className: cn(
1252
+ "flex-wrap items-start gap-2 justify-between h-full",
1253
+ errorMessage && "border-red-500"
1254
+ ),
1255
+ children: [
1256
+ /* @__PURE__ */ jsx16("div", { className: "flex flex-wrap gap-2 flex-1", children: renderSelected }),
1257
+ /* @__PURE__ */ jsx16(CaretDown, { size: 16, className: "mt-1" })
1258
+ ]
1259
+ }
1260
+ )
1241
1261
  }
1242
- ) }),
1262
+ ),
1243
1263
  /* @__PURE__ */ jsx16(PopoverContentBase, { className: "max-h-[--radix-popover-content-available-height] w-[--radix-popover-trigger-width] p-0 border-none", children: /* @__PURE__ */ jsxs9(CommandBase, { className: "dark:text-white", children: [
1244
1264
  /* @__PURE__ */ jsx16(
1245
1265
  CommandInputBase,
@@ -1287,7 +1307,8 @@ function Combobox({
1287
1307
  onChange,
1288
1308
  placeholder,
1289
1309
  searchPlaceholder,
1290
- label
1310
+ label,
1311
+ labelClassname
1291
1312
  }) {
1292
1313
  const selectedItem = items.find((item) => item.value === selected);
1293
1314
  const renderSelected = useMemo(
@@ -1305,7 +1326,7 @@ function Combobox({
1305
1326
  [selected, onChange]
1306
1327
  );
1307
1328
  return /* @__PURE__ */ jsxs10("div", { className: "flex flex-col gap-1 w-full min-w-[150px]", children: [
1308
- label && /* @__PURE__ */ jsx17(LabelBase_default, { children: label }),
1329
+ label && /* @__PURE__ */ jsx17(LabelBase_default, { className: labelClassname, children: label }),
1309
1330
  /* @__PURE__ */ jsx17(
1310
1331
  ComboboxBase,
1311
1332
  {
@@ -1329,7 +1350,8 @@ function MultiCombobox({
1329
1350
  onChange,
1330
1351
  placeholder,
1331
1352
  searchPlaceholder,
1332
- label
1353
+ label,
1354
+ labelClassname
1333
1355
  }) {
1334
1356
  const selectedItems = items.filter((item) => selected.includes(item.value));
1335
1357
  const checkIsSelected = useCallback2(
@@ -1357,14 +1379,22 @@ function MultiCombobox({
1357
1379
  children: [
1358
1380
  /* @__PURE__ */ jsx18("span", { className: "truncate whitespace-break-spaces text-xs", children: item.label }),
1359
1381
  /* @__PURE__ */ jsx18(
1360
- X2,
1382
+ "span",
1361
1383
  {
1362
- size: 14,
1384
+ role: "button",
1385
+ tabIndex: 0,
1363
1386
  onClick: (e) => {
1364
1387
  e.stopPropagation();
1365
1388
  handleSelection(item.value);
1366
1389
  },
1367
- className: "cursor-pointer"
1390
+ onKeyDown: (e) => {
1391
+ if (e.key === "Enter" || e.key === " ") {
1392
+ e.preventDefault();
1393
+ handleSelection(item.value);
1394
+ }
1395
+ },
1396
+ className: "cursor-pointer p-0 m-0 text-xs flex items-center justify-center hover:text-red-500 hover:scale-110 transition-all",
1397
+ children: /* @__PURE__ */ jsx18(X2, { size: 14 })
1368
1398
  }
1369
1399
  )
1370
1400
  ]
@@ -1374,7 +1404,7 @@ function MultiCombobox({
1374
1404
  return /* @__PURE__ */ jsx18("div", { className: "flex flex-wrap gap-2", children: items2 });
1375
1405
  }, [handleSelection, placeholder, selectedItems]);
1376
1406
  return /* @__PURE__ */ jsxs11("div", { className: "flex flex-col gap-1 w-full min-w-[150px]", children: [
1377
- label && /* @__PURE__ */ jsx18(LabelBase_default, { children: label }),
1407
+ label && /* @__PURE__ */ jsx18(LabelBase_default, { className: labelClassname, children: label }),
1378
1408
  /* @__PURE__ */ jsx18(
1379
1409
  ComboboxBase,
1380
1410
  {
@@ -1392,7 +1422,7 @@ function MultiCombobox({
1392
1422
  import * as React13 from "react";
1393
1423
  import * as SelectPrimitive from "@radix-ui/react-select";
1394
1424
  import { Check as Check4, CaretDown as CaretDown2, CaretUp } from "phosphor-react";
1395
- import { motion as motion2, AnimatePresence as AnimatePresence2 } from "framer-motion";
1425
+ import { motion as motion3, AnimatePresence as AnimatePresence3 } from "framer-motion";
1396
1426
  import { Fragment as Fragment3, jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
1397
1427
  var SelectBase = SelectPrimitive.Root;
1398
1428
  var SelectGroupBase = SelectPrimitive.Group;
@@ -1409,7 +1439,7 @@ var SelectTriggerBase = React13.forwardRef(({ className, children, open, ...prop
1409
1439
  children: [
1410
1440
  children,
1411
1441
  /* @__PURE__ */ jsx19(
1412
- motion2.span,
1442
+ motion3.span,
1413
1443
  {
1414
1444
  animate: { rotate: open ? 180 : 0 },
1415
1445
  transition: { duration: 0.3 },
@@ -1447,7 +1477,7 @@ var SelectScrollDownButtonBase = React13.forwardRef(({ className, ...props }, re
1447
1477
  }
1448
1478
  ));
1449
1479
  SelectScrollDownButtonBase.displayName = SelectPrimitive.ScrollDownButton.displayName;
1450
- var SelectContentBase = React13.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx19(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsx19(AnimatePresence2, { children: /* @__PURE__ */ jsx19(
1480
+ var SelectContentBase = React13.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx19(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsx19(AnimatePresence3, { children: /* @__PURE__ */ jsx19(
1451
1481
  SelectPrimitive.Content,
1452
1482
  {
1453
1483
  ref,
@@ -1459,7 +1489,7 @@ var SelectContentBase = React13.forwardRef(({ className, children, position = "p
1459
1489
  ...props,
1460
1490
  asChild: true,
1461
1491
  children: /* @__PURE__ */ jsx19(
1462
- motion2.div,
1492
+ motion3.div,
1463
1493
  {
1464
1494
  initial: { opacity: 0, scale: 0.95 },
1465
1495
  animate: { opacity: 1, scale: 1 },
@@ -1697,7 +1727,7 @@ CardFooterBase.displayName = "CardFooter";
1697
1727
  import * as React16 from "react";
1698
1728
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
1699
1729
  import { Check as Check5 } from "phosphor-react";
1700
- import { motion as motion3 } from "framer-motion";
1730
+ import { motion as motion4 } from "framer-motion";
1701
1731
  import { jsx as jsx24 } from "react/jsx-runtime";
1702
1732
  var CheckboxBase = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
1703
1733
  CheckboxPrimitive.Root,
@@ -1709,7 +1739,7 @@ var CheckboxBase = React16.forwardRef(({ className, ...props }, ref) => /* @__PU
1709
1739
  ),
1710
1740
  ...props,
1711
1741
  children: /* @__PURE__ */ jsx24(CheckboxPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ jsx24(
1712
- motion3.div,
1742
+ motion4.div,
1713
1743
  {
1714
1744
  initial: { scale: 0, opacity: 0, rotate: -90 },
1715
1745
  animate: { scale: 1, opacity: 1, rotate: 0 },
@@ -1974,7 +2004,7 @@ var ProgressCirclesBase = ({
1974
2004
  // src/components/ui/SeparatorBase.tsx
1975
2005
  import * as React19 from "react";
1976
2006
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
1977
- import { motion as motion4 } from "framer-motion";
2007
+ import { motion as motion5 } from "framer-motion";
1978
2008
  import { jsx as jsx27 } from "react/jsx-runtime";
1979
2009
  var SeparatorBase = React19.forwardRef(
1980
2010
  ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => {
@@ -1988,7 +2018,7 @@ var SeparatorBase = React19.forwardRef(
1988
2018
  asChild: true,
1989
2019
  ...props,
1990
2020
  children: /* @__PURE__ */ jsx27(
1991
- motion4.div,
2021
+ motion5.div,
1992
2022
  {
1993
2023
  className: cn(
1994
2024
  "shrink-0 bg-border",
@@ -2805,28 +2835,103 @@ var SlideBase = React23.forwardRef(
2805
2835
  SlideBase.displayName = "SlideBase";
2806
2836
 
2807
2837
  // src/components/ui/SonnerBase.tsx
2808
- import { useTheme as useTheme2 } from "next-themes";
2809
- import { Toaster as Sonner } from "sonner";
2838
+ import { CheckCircle, XCircle, Info, Warning, Spinner } from "phosphor-react";
2839
+ import { Toaster as Sonner, toast as sonnertoast } from "sonner";
2810
2840
  import { jsx as jsx33 } from "react/jsx-runtime";
2841
+ var iconBaseClass = "w-7 h-auto";
2811
2842
  var Toaster = ({ ...props }) => {
2812
- const { theme = "system" } = useTheme2();
2813
2843
  return /* @__PURE__ */ jsx33(
2814
2844
  Sonner,
2815
2845
  {
2816
- theme,
2817
2846
  className: "toaster group",
2847
+ position: "top-center",
2818
2848
  toastOptions: {
2819
2849
  classNames: {
2820
- toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
2821
- description: "group-[.toast]:text-muted-foreground",
2822
- actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
2823
- cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
2850
+ toast: `
2851
+ group toast
2852
+ bg-white dark:bg-gray-900
2853
+ text-gray-900 dark:text-gray-100
2854
+ shadow-lg rounded-md
2855
+ border-l-8
2856
+ border-border
2857
+ flex items-center gap-3
2858
+ data-[type=success]:border-l-green-500 data-[type=success]:bg-green-50 dark:data-[type=success]:bg-green-900/30 dark:data-[type=success]:text-green-400
2859
+ data-[type=error]:border-l-red-500 data-[type=error]:bg-red-50 dark:data-[type=error]:bg-red-900/30 dark:data-[type=error]:text-red-400
2860
+ data-[type=warning]:border-l-yellow-500 data-[type=warning]:bg-yellow-50 dark:data-[type=warning]:bg-yellow-900/30 dark:data-[type=warning]:text-yellow-400
2861
+ data-[type=info]:border-l-blue-500 data-[type=info]:bg-blue-50 dark:data-[type=info]:bg-blue-900/30 dark:data-[type=info]:text-blue-400
2862
+ `,
2863
+ description: `
2864
+ text-sm
2865
+ group-[.toast]:text-muted-foreground
2866
+ dark:group-[.toast]:text-muted-foreground/80
2867
+ `,
2868
+ actionButton: `
2869
+ ml-auto
2870
+ rounded-md px-3 py-1 text-sm font-semibold
2871
+ bg-primary text-primary-foreground
2872
+ hover:bg-primary/80
2873
+ transition-colors duration-200
2874
+ `,
2875
+ cancelButton: `
2876
+ ml-2
2877
+ rounded-md px-3 py-1 text-sm font-semibold
2878
+ bg-muted text-muted-foreground
2879
+ hover:bg-muted/80
2880
+ transition-colors duration-200
2881
+ `
2824
2882
  }
2825
2883
  },
2826
2884
  ...props
2827
2885
  }
2828
2886
  );
2829
2887
  };
2888
+ var toast = {
2889
+ success: (message) => sonnertoast.success(message, {
2890
+ icon: /* @__PURE__ */ jsx33(
2891
+ CheckCircle,
2892
+ {
2893
+ className: `${iconBaseClass} text-green-600 dark:text-green-400`,
2894
+ weight: "fill"
2895
+ }
2896
+ )
2897
+ }),
2898
+ error: (message) => sonnertoast.error(message, {
2899
+ icon: /* @__PURE__ */ jsx33(
2900
+ XCircle,
2901
+ {
2902
+ className: `${iconBaseClass} text-red-600 dark:text-red-400`,
2903
+ weight: "fill"
2904
+ }
2905
+ )
2906
+ }),
2907
+ warning: (message) => sonnertoast.warning(message, {
2908
+ icon: /* @__PURE__ */ jsx33(
2909
+ Warning,
2910
+ {
2911
+ className: `${iconBaseClass} text-yellow-600 dark:text-yellow-400`,
2912
+ weight: "fill"
2913
+ }
2914
+ )
2915
+ }),
2916
+ info: (message) => sonnertoast.info(message, {
2917
+ icon: /* @__PURE__ */ jsx33(
2918
+ Info,
2919
+ {
2920
+ className: `${iconBaseClass} text-blue-600 dark:text-blue-400`,
2921
+ weight: "fill"
2922
+ }
2923
+ )
2924
+ }),
2925
+ loading: (message) => sonnertoast(message, {
2926
+ icon: /* @__PURE__ */ jsx33(
2927
+ Spinner,
2928
+ {
2929
+ className: `${iconBaseClass} animate-spin text-zinc-500 dark:text-zinc-400`,
2930
+ weight: "fill"
2931
+ }
2932
+ )
2933
+ })
2934
+ };
2830
2935
 
2831
2936
  // src/components/ui/SwitchBase.tsx
2832
2937
  import * as React24 from "react";
@@ -2839,7 +2944,7 @@ var SwitchBase = React24.forwardRef(({ className, ...props }, ref) => {
2839
2944
  ...props,
2840
2945
  ref,
2841
2946
  className: cn(
2842
- "peer relative inline-flex h-[16px] w-12 cursor-pointer items-center rounded-full border-2 border-transparent shadow-md transition-colors duration-300 ease-in-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input data-[state=checked]:shadow-[0_0_15px_4px_var(--tw-shadow-color)] data-[state=checked]:shadow-primary/30",
2947
+ "peer relative inline-flex w-12 cursor-pointer items-center rounded-full border-2 border-transparent shadow-md transition-colors duration-300 ease-in-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input data-[state=checked]:shadow-[0_0_15px_4px_var(--tw-shadow-color)] data-[state=checked]:shadow-primary/30",
2843
2948
  className
2844
2949
  ),
2845
2950
  children: /* @__PURE__ */ jsx34(
@@ -3283,6 +3388,7 @@ export {
3283
3388
  buildFilterSummary,
3284
3389
  buttonVariantsBase,
3285
3390
  defaultStringConditions,
3391
+ toast,
3286
3392
  useFormFieldBase,
3287
3393
  useIsMobile,
3288
3394
  useTheme
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mlw-packages/react-components",
3
- "version": "1.3.6",
3
+ "version": "1.3.10",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",