@campxdev/react-blueprint 3.0.0-alpha.4 → 3.0.0-alpha.5

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 (58) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/cjs/types/src/components/Input/DatePicker/DatePicker.d.ts +2 -1
  3. package/dist/cjs/types/src/components/Input/DatePicker/components/DatePickerFilter.d.ts +2 -0
  4. package/dist/cjs/types/src/components/Input/DatePicker/components/DatePickerInput.d.ts +2 -0
  5. package/dist/cjs/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +2 -1
  6. package/dist/cjs/types/src/components/Input/DateTimePicker/components/DateTimePickerFilter.d.ts +2 -0
  7. package/dist/cjs/types/src/components/Input/DateTimePicker/components/DateTimePickerInput.d.ts +2 -0
  8. package/dist/cjs/types/src/components/Input/MultiSelect/MultiSelect.d.ts +2 -0
  9. package/dist/cjs/types/src/components/Input/MultiSelect/components/MultiSelectFilter.d.ts +1 -1
  10. package/dist/cjs/types/src/components/Input/MultiSelect/components/MultiSelectInput.d.ts +1 -1
  11. package/dist/cjs/types/src/components/Input/Select/Select.d.ts +2 -1
  12. package/dist/cjs/types/src/components/Input/SingleSelect/SingleSelect.d.ts +2 -0
  13. package/dist/cjs/types/src/components/Input/SingleSelect/components/SingleFilter.d.ts +1 -1
  14. package/dist/cjs/types/src/components/Input/SingleSelect/components/SingleInput.d.ts +1 -1
  15. package/dist/cjs/types/src/shadcn-components/Input/Select/Select.d.ts +2 -2
  16. package/dist/esm/index.js +2 -2
  17. package/dist/esm/types/src/components/Input/DatePicker/DatePicker.d.ts +2 -1
  18. package/dist/esm/types/src/components/Input/DatePicker/components/DatePickerFilter.d.ts +2 -0
  19. package/dist/esm/types/src/components/Input/DatePicker/components/DatePickerInput.d.ts +2 -0
  20. package/dist/esm/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +2 -1
  21. package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerFilter.d.ts +2 -0
  22. package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerInput.d.ts +2 -0
  23. package/dist/esm/types/src/components/Input/MultiSelect/MultiSelect.d.ts +2 -0
  24. package/dist/esm/types/src/components/Input/MultiSelect/components/MultiSelectFilter.d.ts +1 -1
  25. package/dist/esm/types/src/components/Input/MultiSelect/components/MultiSelectInput.d.ts +1 -1
  26. package/dist/esm/types/src/components/Input/Select/Select.d.ts +2 -1
  27. package/dist/esm/types/src/components/Input/SingleSelect/SingleSelect.d.ts +2 -0
  28. package/dist/esm/types/src/components/Input/SingleSelect/components/SingleFilter.d.ts +1 -1
  29. package/dist/esm/types/src/components/Input/SingleSelect/components/SingleInput.d.ts +1 -1
  30. package/dist/esm/types/src/shadcn-components/Input/Select/Select.d.ts +2 -2
  31. package/dist/index.d.ts +12 -5
  32. package/dist/styles.css +372 -4
  33. package/package.json +1 -1
  34. package/src/components/DataDisplay/DataTable/components/TableView.tsx +31 -5
  35. package/src/components/Feedback/Tooltip/Tooltip.tsx +17 -3
  36. package/src/components/Input/Button/ButtonLoader.css +2 -2
  37. package/src/components/Input/DatePicker/DatePicker.tsx +9 -188
  38. package/src/components/Input/DatePicker/components/DatePickerFilter.tsx +178 -0
  39. package/src/components/Input/DatePicker/components/DatePickerInput.tsx +192 -0
  40. package/src/components/Input/DateTimePicker/DateTimePicker.tsx +8 -294
  41. package/src/components/Input/DateTimePicker/components/DateTimePickerFilter.tsx +292 -0
  42. package/src/components/Input/DateTimePicker/components/DateTimePickerInput.tsx +297 -0
  43. package/src/components/Input/MultiSelect/MultiSelect.tsx +2 -0
  44. package/src/components/Input/MultiSelect/components/MultiSelectFilter.tsx +7 -3
  45. package/src/components/Input/MultiSelect/components/MultiSelectInput.tsx +8 -3
  46. package/src/components/Input/Select/Select.tsx +22 -12
  47. package/src/components/Input/SingleSelect/SingleSelect.tsx +2 -0
  48. package/src/components/Input/SingleSelect/components/SingleFilter.tsx +7 -3
  49. package/src/components/Input/SingleSelect/components/SingleInput.tsx +8 -3
  50. package/src/components/Navigation/DialogButton/DialogButton.tsx +6 -1
  51. package/src/components/Navigation/DropDownMenu/DropDownMenu.tsx +1 -1
  52. package/src/components/Navigation/TabsContainer/TabsContainer.tsx +1 -1
  53. package/src/shadcn-components/DataDisplay/Dialog/Dialog.tsx +2 -2
  54. package/src/shadcn-components/Input/Popover/Popover.tsx +1 -1
  55. package/src/shadcn-components/Input/Select/Select.tsx +8 -8
  56. package/src/shadcn-components/Navigation/DropdownMenu/DropdownMenu.tsx +2 -2
  57. package/src/styles/globals.css +4 -2
  58. package/src/styles/index.css +5 -0
@@ -28,7 +28,8 @@ export type DatePickerProps = {
28
28
  onClose?: () => void;
29
29
  onBlur?: React.FocusEventHandler;
30
30
  fullWidth?: boolean;
31
+ type?: 'input' | 'filter';
31
32
  [key: string]: any;
32
33
  };
33
- export declare const DatePicker: ({ label, name, value, onChange, required, format, helperText, placeholder, shortcutsItems, openPickerIcon: Icon, containerProps, error, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, ...rest }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
34
+ export declare const DatePicker: ({ type, ...props }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
34
35
  export {};
@@ -0,0 +1,2 @@
1
+ import { DatePickerProps } from '../DatePicker';
2
+ export declare const DatePickerFilter: ({ label, value, onChange, format, placeholder, shortcutsItems, openPickerIcon: Icon, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, type, ...rest }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { DatePickerProps } from '../DatePicker';
2
+ export declare const DatePickerInput: ({ label, name, value, onChange, required, format, helperText, placeholder, shortcutsItems, openPickerIcon: Icon, containerProps, error, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, type, ...rest }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
@@ -30,7 +30,8 @@ export type DateTimePickerProps = {
30
30
  onClose?: () => void;
31
31
  onBlur?: React.FocusEventHandler;
32
32
  fullWidth?: boolean;
33
+ type?: 'input' | 'filter';
33
34
  [key: string]: any;
34
35
  };
35
- export declare const DateTimePicker: ({ label, name, value, onChange, required, format, views, helperText, placeholder, shortcutsItems, openPickerIcon: Icon, containerProps, error, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, ...rest }: DateTimePickerProps) => import("react/jsx-runtime").JSX.Element;
36
+ export declare const DateTimePicker: ({ type, ...props }: DateTimePickerProps) => import("react/jsx-runtime").JSX.Element;
36
37
  export {};
@@ -0,0 +1,2 @@
1
+ import { DateTimePickerProps } from '../DateTimePicker';
2
+ export declare const DateTimePickerFilter: ({ label, value, onChange, format, views, placeholder, shortcutsItems, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, type, ...rest }: DateTimePickerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { DateTimePickerProps } from '../DateTimePicker';
2
+ export declare const DateTimePickerInput: ({ label, name, value, onChange, required, format, views, helperText, placeholder, shortcutsItems, openPickerIcon: Icon, containerProps, error, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, type, ...rest }: DateTimePickerProps) => import("react/jsx-runtime").JSX.Element;
@@ -35,6 +35,8 @@ export type MultiSelectProps = {
35
35
  type?: 'input' | 'filter';
36
36
  disableClear?: boolean;
37
37
  fullWidth?: boolean;
38
+ disabled?: boolean;
39
+ loading?: boolean;
38
40
  };
39
41
  export declare const MultiSelect: ({ options, optionsApiEndPoint, optionsApiEndpointParams, externalAxios, getValue, value, onChange, dbValueProps, dbLabelProps, onOpen, onClose, type, ...restProps }: MultiSelectProps) => import("react/jsx-runtime").JSX.Element;
40
42
  export default MultiSelect;
@@ -11,4 +11,4 @@ export type MultiSelectFilterProps = {
11
11
  handleClearAll: () => void;
12
12
  state: MultiSelectState;
13
13
  } & MultiSelectProps;
14
- export declare const MultiSelectFilter: ({ optionsApiEndPoint, label, name, value, onChange, searchDb, handleOpen, handleClose, handleScroll, handleSelectOption, handleClearAll, state, disableClear, }: MultiSelectFilterProps) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const MultiSelectFilter: ({ optionsApiEndPoint, label, name, value, onChange, searchDb, handleOpen, handleClose, handleScroll, handleSelectOption, handleClearAll, state, disableClear, disabled, loading, }: MultiSelectFilterProps) => import("react/jsx-runtime").JSX.Element;
@@ -11,4 +11,4 @@ export type MultiSelectInputProps = {
11
11
  handleClearAll: () => void;
12
12
  state: MultiSelectState;
13
13
  } & MultiSelectProps;
14
- export declare const MultiSelectInput: ({ optionsApiEndPoint, required, label, name, getValue, value, onChange, error, helperText, searchDb, handleOpen, handleClose, handleScroll, handleSelectOption, handleClearAll, state, disableClear, fullWidth, }: MultiSelectInputProps) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const MultiSelectInput: ({ optionsApiEndPoint, required, label, name, getValue, value, onChange, error, helperText, searchDb, handleOpen, handleClose, handleScroll, handleSelectOption, handleClearAll, state, disableClear, fullWidth, disabled, loading, }: MultiSelectInputProps) => import("react/jsx-runtime").JSX.Element;
@@ -12,5 +12,6 @@ export type SelectProps = {
12
12
  className?: string;
13
13
  disabled?: boolean;
14
14
  fullWidth?: boolean;
15
+ loading?: boolean;
15
16
  };
16
- export declare const Select: ({ options, onChange, value, placeholder, className, defaultValue, disabled, fullWidth, }: SelectProps) => import("react/jsx-runtime").JSX.Element;
17
+ export declare const Select: ({ options, onChange, value, placeholder, className, defaultValue, disabled, fullWidth, loading, }: SelectProps) => import("react/jsx-runtime").JSX.Element;
@@ -35,6 +35,8 @@ export type SingleSelectProps = {
35
35
  type?: 'input' | 'filter';
36
36
  disableClear?: boolean;
37
37
  fullWidth?: boolean;
38
+ disabled?: boolean;
39
+ loading?: boolean;
38
40
  };
39
41
  export declare const SingleSelect: ({ options, optionsApiEndPoint, optionsApiEndpointParams, externalAxios, getValue, value, onChange, dbValueProps, dbLabelProps, onOpen, onClose, type, ...restProps }: SingleSelectProps) => import("react/jsx-runtime").JSX.Element;
40
42
  export default SingleSelect;
@@ -9,4 +9,4 @@ export type SingleFilterProps = {
9
9
  handleScroll: (event: any) => Promise<void>;
10
10
  state: SingleSelectState;
11
11
  } & SingleSelectProps;
12
- export declare const SingleFilter: ({ optionsApiEndPoint, label, name, value, onChange, searchDb, handleOpen, handleClose, handleScroll, state, disableClear, fullWidth, }: SingleFilterProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const SingleFilter: ({ optionsApiEndPoint, label, name, value, onChange, searchDb, handleOpen, handleClose, handleScroll, state, disableClear, fullWidth, disabled, loading, }: SingleFilterProps) => import("react/jsx-runtime").JSX.Element;
@@ -9,4 +9,4 @@ export type SingleInputProps = {
9
9
  handleScroll: (event: any) => Promise<void>;
10
10
  state: SingleSelectState;
11
11
  } & SingleSelectProps;
12
- export declare const SingleInput: ({ optionsApiEndPoint, required, label, name, getValue, value, onChange, error, helperText, searchDb, handleOpen, handleClose, handleScroll, state, fullWidth, }: SingleInputProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const SingleInput: ({ optionsApiEndPoint, required, label, name, getValue, value, onChange, error, helperText, searchDb, handleOpen, handleClose, handleScroll, state, fullWidth, disabled, loading, }: SingleInputProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
2
1
  import * as SelectPrimitive from '@radix-ui/react-select';
2
+ import * as React from 'react';
3
3
  declare const Select: React.FC<SelectPrimitive.SelectProps>;
4
4
  declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
5
5
  declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
@@ -10,4 +10,4 @@ declare const SelectContent: React.ForwardRefExoticComponent<Omit<SelectPrimitiv
10
10
  declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
12
  declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
- export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, };
13
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
package/dist/index.d.ts CHANGED
@@ -513,7 +513,7 @@ type DataTableProps<TData = any> = {
513
513
  declare const DataTable: <TData extends Record<string, any> = any>(props: DataTableProps<TData>) => react_jsx_runtime.JSX.Element;
514
514
 
515
515
  declare const typographyVariants: (props?: ({
516
- variant?: "blockquote" | "h1" | "h2" | "h3" | "h4" | "p" | "small" | "list" | "inlineCode" | "lead" | "large" | "muted" | null | undefined;
516
+ variant?: "blockquote" | "h1" | "h2" | "h3" | "h4" | "p" | "small" | "list" | "muted" | "inlineCode" | "lead" | "large" | null | undefined;
517
517
  } & class_variance_authority_dist_types.ClassProp) | undefined) => string;
518
518
  interface TypographyProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<typeof typographyVariants> {
519
519
  as?: React$1.ElementType;
@@ -616,7 +616,7 @@ declare const Tooltip: ({ children, title, placement, open, defaultOpen, onOpenC
616
616
 
617
617
  declare const buttonVariants: (props?: ({
618
618
  variant?: "input" | "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
619
- size?: "default" | "icon" | "sm" | "lg" | "icon-sm" | "icon-lg" | null | undefined;
619
+ size?: "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
620
620
  } & class_variance_authority_dist_types.ClassProp) | undefined) => string;
621
621
 
622
622
  type ButtonProps = React.ComponentProps<'button'> & VariantProps<typeof buttonVariants> & {
@@ -658,9 +658,10 @@ type DatePickerProps = {
658
658
  onClose?: () => void;
659
659
  onBlur?: React.FocusEventHandler;
660
660
  fullWidth?: boolean;
661
+ type?: 'input' | 'filter';
661
662
  [key: string]: any;
662
663
  };
663
- declare const DatePicker: ({ label, name, value, onChange, required, format, helperText, placeholder, shortcutsItems, openPickerIcon: Icon, containerProps, error, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, ...rest }: DatePickerProps) => react_jsx_runtime.JSX.Element;
664
+ declare const DatePicker: ({ type, ...props }: DatePickerProps) => react_jsx_runtime.JSX.Element;
664
665
 
665
666
  type DateTimePickerViews = 'year' | 'month' | 'day' | 'hours' | 'minutes' | 'seconds';
666
667
  type DateTimeFormat = 'yyyy' | 'MMMM yyyy' | 'MMM yyyy' | 'dd MMMM yyyy' | 'dd/MM/yyyy' | 'MM/dd/yyyy' | 'yyyy-MM-dd' | 'yyyy-MM-dd hh:mm a' | 'dd MMM yyyy hh:mm a' | 'dd/MM/yyyy hh:mm a' | 'yyyy-MM-dd hh:mm:ss a' | 'dd MMM yyyy hh:mm:ss a' | 'dd/MM/yyyy hh:mm:ss a' | 'hh:mm a' | 'hh:mm:ss a' | 'MMM dd, yyyy hh:mm a' | 'MMM dd, yyyy hh:mm:ss a' | 'EEE, MMM dd yyyy' | 'EEEE, MMMM dd, yyyy';
@@ -694,9 +695,10 @@ type DateTimePickerProps = {
694
695
  onClose?: () => void;
695
696
  onBlur?: React.FocusEventHandler;
696
697
  fullWidth?: boolean;
698
+ type?: 'input' | 'filter';
697
699
  [key: string]: any;
698
700
  };
699
- declare const DateTimePicker: ({ label, name, value, onChange, required, format, views, helperText, placeholder, shortcutsItems, openPickerIcon: Icon, containerProps, error, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, ...rest }: DateTimePickerProps) => react_jsx_runtime.JSX.Element;
701
+ declare const DateTimePicker: ({ type, ...props }: DateTimePickerProps) => react_jsx_runtime.JSX.Element;
700
702
 
701
703
  type FileUploadProps = {
702
704
  label: string;
@@ -823,6 +825,8 @@ type MultiSelectProps = {
823
825
  type?: 'input' | 'filter';
824
826
  disableClear?: boolean;
825
827
  fullWidth?: boolean;
828
+ disabled?: boolean;
829
+ loading?: boolean;
826
830
  };
827
831
  declare const MultiSelect: ({ options, optionsApiEndPoint, optionsApiEndpointParams, externalAxios, getValue, value, onChange, dbValueProps, dbLabelProps, onOpen, onClose, type, ...restProps }: MultiSelectProps) => react_jsx_runtime.JSX.Element;
828
832
 
@@ -902,8 +906,9 @@ type SelectProps = {
902
906
  className?: string;
903
907
  disabled?: boolean;
904
908
  fullWidth?: boolean;
909
+ loading?: boolean;
905
910
  };
906
- declare const Select: ({ options, onChange, value, placeholder, className, defaultValue, disabled, fullWidth, }: SelectProps) => react_jsx_runtime.JSX.Element;
911
+ declare const Select: ({ options, onChange, value, placeholder, className, defaultValue, disabled, fullWidth, loading, }: SelectProps) => react_jsx_runtime.JSX.Element;
907
912
 
908
913
  type CheckboxProps = {
909
914
  label: ReactNode;
@@ -953,6 +958,8 @@ type SingleSelectProps = {
953
958
  type?: 'input' | 'filter';
954
959
  disableClear?: boolean;
955
960
  fullWidth?: boolean;
961
+ disabled?: boolean;
962
+ loading?: boolean;
956
963
  };
957
964
  declare const SingleSelect: ({ options, optionsApiEndPoint, optionsApiEndpointParams, externalAxios, getValue, value, onChange, dbValueProps, dbLabelProps, onOpen, onClose, type, ...restProps }: SingleSelectProps) => react_jsx_runtime.JSX.Element;
958
965
 
package/dist/styles.css CHANGED
@@ -1,7 +1,7 @@
1
1
  /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
2
- @import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap');
3
2
  @layer properties;
4
3
  @layer theme, base, components, utilities;
4
+ @import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap');
5
5
  @layer theme {
6
6
  :root, :host {
7
7
  --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
@@ -94,6 +94,7 @@
94
94
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
95
95
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
96
96
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
97
+ --animate-spin: spin 1s linear infinite;
97
98
  --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
98
99
  --aspect-video: 16 / 9;
99
100
  --default-transition-duration: 150ms;
@@ -432,9 +433,6 @@
432
433
  .z-\[1500\] {
433
434
  z-index: 1500;
434
435
  }
435
- .z-\[2000\] {
436
- z-index: 2000;
437
- }
438
436
  .z-\[9999\] {
439
437
  z-index: 9999;
440
438
  }
@@ -1061,6 +1059,9 @@
1061
1059
  .animate-pulse {
1062
1060
  animation: var(--animate-pulse);
1063
1061
  }
1062
+ .animate-spin {
1063
+ animation: var(--animate-spin);
1064
+ }
1064
1065
  .cursor-default {
1065
1066
  cursor: default;
1066
1067
  }
@@ -1649,6 +1650,9 @@
1649
1650
  .py-6 {
1650
1651
  padding-block: calc(var(--spacing) * 6);
1651
1652
  }
1653
+ .py-8 {
1654
+ padding-block: calc(var(--spacing) * 8);
1655
+ }
1652
1656
  .py-\[0\.2rem\] {
1653
1657
  padding-block: 0.2rem;
1654
1658
  }
@@ -1823,6 +1827,9 @@
1823
1827
  .break-all {
1824
1828
  word-break: break-all;
1825
1829
  }
1830
+ .text-ellipsis {
1831
+ text-overflow: ellipsis;
1832
+ }
1826
1833
  .whitespace-nowrap {
1827
1834
  white-space: nowrap;
1828
1835
  }
@@ -3880,6 +3887,7 @@
3880
3887
  --yellow-background: oklch(0.82 0.166 94.2 / 0.2);
3881
3888
  --default-background: oklch(0.978 0.004 233.756);
3882
3889
  --input-background: oklch(0.953 0.002 264);
3890
+ --font-sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
3883
3891
  }
3884
3892
  .dark {
3885
3893
  --background: oklch(0.145 0 0);
@@ -3928,6 +3936,7 @@
3928
3936
  --yellow-background: oklch(0.82 0.166 94.2 / 0.2);
3929
3937
  --default-background: oklch(0.154 0.013 233.756);
3930
3938
  --input-background: oklch(0.215 0.008 264);
3939
+ --font-sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
3931
3940
  }
3932
3941
  @layer base {
3933
3942
  * {
@@ -3944,6 +3953,7 @@
3944
3953
  body {
3945
3954
  height: 100%;
3946
3955
  overflow: auto;
3956
+ -webkit-font-smoothing: antialiased;
3947
3957
  background-color: var(--background);
3948
3958
  font-family: var(--font-sans);
3949
3959
  color: var(--foreground);
@@ -4045,6 +4055,359 @@
4045
4055
  transform: scale(0.95);
4046
4056
  }
4047
4057
  }
4058
+ .react-joyride__tooltip {
4059
+ background-color: #ffffff !important;
4060
+ border-radius: 12px !important;
4061
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
4062
+ border: 1px solid #f3f4f6 !important;
4063
+ font-family: 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif !important;
4064
+ padding-top: 16px !important;
4065
+ }
4066
+ .react-joyride__tooltip div {
4067
+ text-align: left !important;
4068
+ }
4069
+ .react-joyride__tooltip > div:nth-child(1) div:nth-child(2) {
4070
+ padding: 0 !important;
4071
+ font-size: 14px !important;
4072
+ line-height: 1.5 !important;
4073
+ color: #4b5563 !important;
4074
+ }
4075
+ .react-joyride__tooltip button[data-action="skip"] {
4076
+ top: 16px !important;
4077
+ right: 16px !important;
4078
+ }
4079
+ .react-joyride__beacon {
4080
+ background-color: #3b82f6 !important;
4081
+ border: 3px solid #3b82f6 !important;
4082
+ border-radius: 50% !important;
4083
+ box-shadow: 0 0 0 6px rgba(59, 130, 246, 0.2) !important;
4084
+ }
4085
+ .react-joyride__beacon::before {
4086
+ background-color: #3b82f6 !important;
4087
+ animation: joyride-beacon-pulse 1.5s ease-in-out infinite !important;
4088
+ }
4089
+ .react-joyride__tooltip button[data-action="next"]:hover {
4090
+ background-color: #000000 !important;
4091
+ transform: translateY(-1px) !important;
4092
+ }
4093
+ .react-joyride__tooltip button[data-action="back"]:hover {
4094
+ background-color: #f9fafb !important;
4095
+ border-color: #d1d5db !important;
4096
+ }
4097
+ .react-joyride__tooltip button[data-action="skip"]:hover {
4098
+ background-color: #f3f4f6 !important;
4099
+ color: #374151 !important;
4100
+ }
4101
+ .react-joyride__tooltip .react-joyride__tooltip-footer {
4102
+ margin-top: 16px !important;
4103
+ padding-top: 16px !important;
4104
+ border-top: 1px solid #f3f4f6 !important;
4105
+ }
4106
+ .react-joyride__tooltip-arrow {
4107
+ filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.1)) !important;
4108
+ }
4109
+ @keyframes joyride-beacon-pulse {
4110
+ 0% {
4111
+ transform: scale(1);
4112
+ opacity: 1;
4113
+ }
4114
+ 50% {
4115
+ transform: scale(1.2);
4116
+ opacity: 0.7;
4117
+ }
4118
+ 100% {
4119
+ transform: scale(1);
4120
+ opacity: 1;
4121
+ }
4122
+ }
4123
+ .buttonLoader {
4124
+ max-height: 40px;
4125
+ padding: 10px 20px;
4126
+ font-size: '14px';
4127
+ aspect-ratio: 2.5;
4128
+ --_g: no-repeat radial-gradient(circle, currentColor 48%, #0000);
4129
+ background: var(--_g), var(--_g), var(--_g), var(--_g);
4130
+ background-size: 15% 40%;
4131
+ animation: l44 1s infinite linear alternate;
4132
+ scale: 0.5;
4133
+ }
4134
+ @keyframes l44 {
4135
+ 0%,
4136
+ 5% {
4137
+ background-position: calc(0 * 100% / 3) 50%, calc(1 * 100% / 3) 50%,
4138
+ calc(2 * 100% / 3) 50%, calc(3 * 100% / 3) 50%;
4139
+ }
4140
+ 12.5% {
4141
+ background-position: calc(0 * 100% / 3) 0, calc(1 * 100% / 3) 50%,
4142
+ calc(2 * 100% / 3) 50%, calc(3 * 100% / 3) 50%;
4143
+ }
4144
+ 25% {
4145
+ background-position: calc(0 * 100% / 3) 0, calc(1 * 100% / 3) 0,
4146
+ calc(2 * 100% / 3) 50%, calc(3 * 100% / 3) 50%;
4147
+ }
4148
+ 37.5% {
4149
+ background-position: calc(0 * 100% / 3) 100%, calc(1 * 100% / 3) 0,
4150
+ calc(2 * 100% / 3) 0, calc(3 * 100% / 3) 50%;
4151
+ }
4152
+ 50% {
4153
+ background-position: calc(0 * 100% / 3) 100%, calc(1 * 100% / 3) 100%,
4154
+ calc(2 * 100% / 3) 0, calc(3 * 100% / 3) 0;
4155
+ }
4156
+ 62.5% {
4157
+ background-position: calc(0 * 100% / 3) 50%, calc(1 * 100% / 3) 100%,
4158
+ calc(2 * 100% / 3) 100%, calc(3 * 100% / 3) 0;
4159
+ }
4160
+ 75% {
4161
+ background-position: calc(0 * 100% / 3) 50%, calc(1 * 100% / 3) 50%,
4162
+ calc(2 * 100% / 3) 100%, calc(3 * 100% / 3) 100%;
4163
+ }
4164
+ 87.5% {
4165
+ background-position: calc(0 * 100% / 3) 50%, calc(1 * 100% / 3) 50%,
4166
+ calc(2 * 100% / 3) 50%, calc(3 * 100% / 3) 100%;
4167
+ }
4168
+ 95%,
4169
+ 100% {
4170
+ background-position: calc(0 * 100% / 3) 50%, calc(1 * 100% / 3) 50%,
4171
+ calc(2 * 100% / 3) 50%, calc(3 * 100% / 3) 50%;
4172
+ }
4173
+ }
4174
+ .calendar-wrapper .fc {
4175
+ height: 100%;
4176
+ font-family: inherit;
4177
+ font-size: 0.875rem;
4178
+ }
4179
+ .calendar-wrapper .fc-header-toolbar {
4180
+ background-color: var(--background);
4181
+ padding: 1rem;
4182
+ margin: 0 !important;
4183
+ border-bottom: 1px solid var(--border);
4184
+ }
4185
+ .calendar-wrapper .fc-toolbar-chunk {
4186
+ display: flex;
4187
+ align-items: center;
4188
+ gap: 0.5rem;
4189
+ }
4190
+ .calendar-wrapper .fc-button-group {
4191
+ display: inline-flex;
4192
+ }
4193
+ .calendar-wrapper .fc-button {
4194
+ border: 1px solid var(--border);
4195
+ background-color: transparent;
4196
+ color: var(--foreground);
4197
+ font-size: 0.875rem;
4198
+ font-weight: 500;
4199
+ height: auto;
4200
+ padding: 0.25rem 1rem;
4201
+ border-radius: 0.375rem;
4202
+ cursor: pointer;
4203
+ text-transform: capitalize;
4204
+ }
4205
+ .calendar-wrapper .fc-button:hover {
4206
+ background-color: var(--muted);
4207
+ color: var(--primary);
4208
+ border: 1px solid var(--border);
4209
+ }
4210
+ .calendar-wrapper .fc-button:focus {
4211
+ box-shadow: none !important;
4212
+ }
4213
+ .calendar-wrapper .fc-button:disabled {
4214
+ opacity: 0.5;
4215
+ pointer-events: none;
4216
+ }
4217
+ .calendar-wrapper .fc-toolbar-title {
4218
+ color: var(--foreground);
4219
+ font-size: 1.25rem;
4220
+ font-weight: 600;
4221
+ margin: 0;
4222
+ }
4223
+ .calendar-wrapper .fc-col-header {
4224
+ background-color: var(--muted);
4225
+ border-bottom: 1px solid var(--border);
4226
+ }
4227
+ .calendar-wrapper .fc-col-header-cell {
4228
+ padding: 0.5rem;
4229
+ }
4230
+ .calendar-wrapper .fc-col-header-cell-cushion {
4231
+ color: var(--muted-foreground);
4232
+ font-weight: 600;
4233
+ text-decoration: none;
4234
+ font-size: 0.75rem;
4235
+ text-transform: uppercase;
4236
+ letter-spacing: 0.025em;
4237
+ }
4238
+ .calendar-wrapper .fc-daygrid-day {
4239
+ background-color: var(--background);
4240
+ border-color: var(--border);
4241
+ }
4242
+ .calendar-wrapper .fc-day-today {
4243
+ background-color: var(--primary) !important;
4244
+ @supports (color: color-mix(in lab, red, red)) {
4245
+ background-color: color-mix(
4246
+ in oklch,
4247
+ var(--primary) 5%,
4248
+ transparent
4249
+ ) !important;
4250
+ }
4251
+ }
4252
+ .calendar-wrapper .fc-daygrid-day-number {
4253
+ color: var(--foreground);
4254
+ text-decoration: none;
4255
+ padding: 0.25rem 0.5rem;
4256
+ font-size: 0.875rem;
4257
+ transition: all 0.2s;
4258
+ }
4259
+ .calendar-wrapper .fc-daygrid-day-number:hover {
4260
+ background-color: var(--muted);
4261
+ border-radius: 0.25rem;
4262
+ }
4263
+ .calendar-wrapper .fc-daygrid-day-top {
4264
+ display: flex;
4265
+ justify-content: flex-end;
4266
+ padding: 0.25rem;
4267
+ }
4268
+ .calendar-wrapper .fc-event {
4269
+ background-color: var(--primary);
4270
+ border-color: var(--primary);
4271
+ color: var(--primary-foreground);
4272
+ border-radius: 0.25rem;
4273
+ border: none;
4274
+ transition: all 0.2s;
4275
+ cursor: pointer;
4276
+ }
4277
+ .calendar-wrapper .fc-event:hover {
4278
+ background-color: var(--primary);
4279
+ @supports (color: color-mix(in lab, red, red)) {
4280
+ background-color: color-mix(in oklch, var(--primary) 90%, transparent);
4281
+ }
4282
+ }
4283
+ .calendar-wrapper .fc-event-title,
4284
+ .calendar-wrapper .fc-event-time {
4285
+ padding: 0.125rem 0.25rem;
4286
+ }
4287
+ .calendar-wrapper .fc-timegrid-slot {
4288
+ border-color: var(--border);
4289
+ }
4290
+ .calendar-wrapper .fc-timegrid-col.fc-day-today {
4291
+ background-color: var(--primary);
4292
+ @supports (color: color-mix(in lab, red, red)) {
4293
+ background-color: color-mix(in oklch, var(--primary) 3%, transparent);
4294
+ }
4295
+ }
4296
+ .calendar-wrapper .fc-timegrid-axis {
4297
+ color: var(--muted-foreground);
4298
+ }
4299
+ .calendar-wrapper .fc-timegrid-slot-label {
4300
+ color: var(--muted-foreground);
4301
+ font-size: 0.75rem;
4302
+ }
4303
+ .calendar-wrapper .fc-list {
4304
+ border-color: var(--border);
4305
+ }
4306
+ .calendar-wrapper .fc-list-day {
4307
+ background-color: var(--muted);
4308
+ }
4309
+ .calendar-wrapper .fc-list-day-cushion {
4310
+ color: var(--foreground);
4311
+ font-weight: 600;
4312
+ }
4313
+ .calendar-wrapper .fc-list-event {
4314
+ border-color: var(--border);
4315
+ transition: all 0.2s;
4316
+ }
4317
+ .calendar-wrapper .fc-list-event:hover {
4318
+ background-color: var(--muted);
4319
+ @supports (color: color-mix(in lab, red, red)) {
4320
+ background-color: color-mix(in oklch, var(--muted) 50%, transparent);
4321
+ }
4322
+ }
4323
+ .calendar-wrapper .fc-list-event-title {
4324
+ color: var(--foreground);
4325
+ }
4326
+ .calendar-wrapper .fc-list-event-time {
4327
+ color: var(--muted-foreground);
4328
+ }
4329
+ .calendar-wrapper .fc-more-link {
4330
+ color: var(--primary);
4331
+ font-weight: 500;
4332
+ }
4333
+ .calendar-wrapper .fc-more-link:hover {
4334
+ color: var(--primary);
4335
+ @supports (color: color-mix(in lab, red, red)) {
4336
+ color: color-mix(in oklch, var(--primary) 90%, transparent);
4337
+ }
4338
+ }
4339
+ .calendar-wrapper .fc-popover {
4340
+ background-color: var(--background);
4341
+ border: 1px solid var(--border);
4342
+ border-radius: 0.5rem;
4343
+ box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
4344
+ }
4345
+ .calendar-wrapper .fc-popover-header {
4346
+ background-color: var(--muted);
4347
+ border-bottom: 1px solid var(--border);
4348
+ padding: 0.5rem 0.75rem;
4349
+ }
4350
+ .calendar-wrapper .fc-popover-title {
4351
+ color: var(--foreground);
4352
+ font-weight: 600;
4353
+ }
4354
+ .calendar-wrapper .fc-popover-close {
4355
+ color: var(--muted-foreground);
4356
+ cursor: pointer;
4357
+ }
4358
+ .calendar-wrapper .fc-popover-close:hover {
4359
+ color: var(--foreground);
4360
+ }
4361
+ .calendar-wrapper .fc-scroller::-webkit-scrollbar {
4362
+ width: 6px;
4363
+ height: 6px;
4364
+ }
4365
+ .calendar-wrapper .fc-scroller::-webkit-scrollbar-track {
4366
+ background-color: var(--muted);
4367
+ border-radius: 3px;
4368
+ }
4369
+ .calendar-wrapper .fc-scroller::-webkit-scrollbar-thumb {
4370
+ background-color: var(--border);
4371
+ border-radius: 3px;
4372
+ }
4373
+ .calendar-wrapper .fc-scroller::-webkit-scrollbar-thumb:hover {
4374
+ background-color: var(--muted-foreground);
4375
+ }
4376
+ .calendar-wrapper .fc-theme-standard td,
4377
+ .calendar-wrapper .fc-theme-standard th {
4378
+ border-color: var(--border);
4379
+ }
4380
+ .calendar-wrapper .fc-theme-standard .fc-scrollgrid {
4381
+ border-color: var(--border);
4382
+ }
4383
+ .calendar-wrapper .fc-timegrid-now-indicator-line {
4384
+ border-color: var(--destructive);
4385
+ }
4386
+ .calendar-wrapper .fc-timegrid-now-indicator-arrow {
4387
+ border-color: var(--destructive);
4388
+ }
4389
+ @media (max-width: 768px) {
4390
+ .calendar-wrapper .fc-header-toolbar {
4391
+ flex-direction: column;
4392
+ gap: 0.5rem;
4393
+ }
4394
+ .calendar-wrapper .fc-toolbar-chunk {
4395
+ width: 100%;
4396
+ justify-content: center;
4397
+ }
4398
+ .calendar-wrapper .fc-button {
4399
+ padding: 0.25rem 0.5rem;
4400
+ font-size: 0.75rem;
4401
+ }
4402
+ }
4403
+ @media (max-width: 640px) {
4404
+ .calendar-wrapper .fc-event {
4405
+ font-size: 0.7rem;
4406
+ }
4407
+ .calendar-wrapper .fc-daygrid-day-number {
4408
+ font-size: 0.75rem;
4409
+ }
4410
+ }
4048
4411
  @property --tw-translate-x {
4049
4412
  syntax: "*";
4050
4413
  inherits: false;
@@ -4305,6 +4668,11 @@
4305
4668
  initial-value: "";
4306
4669
  inherits: false;
4307
4670
  }
4671
+ @keyframes spin {
4672
+ to {
4673
+ transform: rotate(360deg);
4674
+ }
4675
+ }
4308
4676
  @keyframes pulse {
4309
4677
  50% {
4310
4678
  opacity: 0.5;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@campxdev/react-blueprint",
3
- "version": "3.0.0-alpha.4",
3
+ "version": "3.0.0-alpha.5",
4
4
  "description": "React UI component library for CampX applications",
5
5
  "author": "CampX",
6
6
  "license": "MIT",